ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilPortfolioExerciseGUI Class Reference

Class ilPortfolioExerciseGUI. More...

+ Collaboration diagram for ilPortfolioExerciseGUI:

Public Member Functions

 __construct ($a_user_id, $a_obj_id)
 
 executeCommand ()
 
 downloadExcAssFile ()
 
 downloadExcSubFile ()
 
 getSubmitButton (int $ass_id)
 Get submit link. More...
 
 getDownloadSubmissionButton (int $ass_id)
 Get download button. More...
 
 getActionButtons ()
 Get action buttons. More...
 

Static Public Member Functions

static checkExercise ($a_user_id, $a_obj_id, $a_add_submit=false, $as_array=false)
 

Protected Member Functions

 finalize ()
 Finalize and submit portfolio to exercise. More...
 

Static Protected Member Functions

static getExerciseInfo ($a_user_id, $a_assignment_id, $a_add_submit=false, $as_array=false)
 

Protected Attributes

 $ctrl
 
 $lng
 
 $user_id
 
 $obj_id
 
 $ass_id
 
 $file
 
 $pe
 
 $ui
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilPortfolioExerciseGUI::__construct (   $a_user_id,
  $a_obj_id 
)

Definition at line 39 of file class.ilPortfolioExerciseGUI.php.

40 {
41 global $DIC;
42
43 $this->ctrl = $DIC->ctrl();
44 $this->lng = $DIC->language();
45 $this->user_id = $a_user_id;
46 $this->obj_id = $a_obj_id;
47 $this->ass_id = (int) $_GET["ass"];
48 $this->file = trim($_GET["file"]);
49 $this->ui = $DIC->ui();
50 }
$_GET["client_id"]
ui()
Definition: ui.php:5
$DIC
Definition: xapitoken.php:46

References $_GET, $DIC, and ui().

+ Here is the call graph for this function:

Member Function Documentation

◆ checkExercise()

static ilPortfolioExerciseGUI::checkExercise (   $a_user_id,
  $a_obj_id,
  $a_add_submit = false,
  $as_array = false 
)
static

Definition at line 73 of file class.ilPortfolioExerciseGUI.php.

74 {
75 $pe = new ilPortfolioExercise($a_user_id, $a_obj_id);
76
77 $info = [];
78 foreach ($pe->getAssignmentsOfPortfolio() as $exercise) {
79 $part = self::getExerciseInfo($a_user_id, $exercise["ass_id"], $a_add_submit, $as_array);
80 if ($part) {
81 $info[] = $part;
82 }
83 }
84 if (sizeof($info) && !$as_array) {
85 return implode("<br />", $info);
86 }
87
88 if ($as_array) {
89 return $info;
90 }
91 }
static getExerciseInfo($a_user_id, $a_assignment_id, $a_add_submit=false, $as_array=false)
Exercise info for portfolios.

References $exercise, $pe, and getExerciseInfo().

Referenced by ilPortfolioRepositoryGUI\getPortfolioList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ downloadExcAssFile()

ilPortfolioExerciseGUI::downloadExcAssFile ( )

Definition at line 227 of file class.ilPortfolioExerciseGUI.php.

228 {
229 if ($this->file) {
230 $ass = new ilExAssignment($this->ass_id);
231 $ass_files = $ass->getFiles();
232 if (count($ass_files) > 0) {
233 foreach ($ass_files as $file) {
234 if ($file["name"] == $this->file) {
235 ilUtil::deliverFile($file["fullpath"], $file["name"]);
236 }
237 }
238 }
239 }
240 }
Exercise assignment.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.

References $file, and ilUtil\deliverFile().

+ Here is the call graph for this function:

◆ downloadExcSubFile()

ilPortfolioExerciseGUI::downloadExcSubFile ( )

Definition at line 242 of file class.ilPortfolioExerciseGUI.php.

243 {
244 $ass = new ilExAssignment($this->ass_id);
245 $submission = new ilExSubmission($ass, $this->user_id);
246 $submitted = $submission->getFiles();
247 if (count($submitted) > 0) {
248 $submitted = array_pop($submitted);
249
250 $user_data = ilObjUser::_lookupName($submitted["user_id"]);
251 $title = ilObject::_lookupTitle($submitted["obj_id"]) . " - " .
252 $ass->getTitle() . " - " .
253 $user_data["firstname"] . " " .
254 $user_data["lastname"] . " (" .
255 $user_data["login"] . ").zip";
256
257 ilUtil::deliverFile($submitted["filename"], $title);
258 }
259 }
Exercise submission //TODO: This class has to much static methods related to delivered "files".
static _lookupName($a_user_id)
lookup user name
static _lookupTitle($a_id)
lookup object title

References ilObjUser\_lookupName(), ilObject\_lookupTitle(), and ilUtil\deliverFile().

+ Here is the call graph for this function:

◆ executeCommand()

ilPortfolioExerciseGUI::executeCommand ( )

Definition at line 52 of file class.ilPortfolioExerciseGUI.php.

53 {
55
56 if (!$this->ass_id ||
57 !$this->user_id) {
58 $this->ctrl->returnToParent($this);
59 }
60
61 $next_class = $ilCtrl->getNextClass($this);
62 $cmd = $ilCtrl->getCmd();
63
64 switch ($next_class) {
65 default:
66 $this->$cmd();
67 break;
68 }
69
70 return true;
71 }
global $ilCtrl
Definition: ilias.php:18

References $ctrl, and $ilCtrl.

◆ finalize()

ilPortfolioExerciseGUI::finalize ( )
protected

Finalize and submit portfolio to exercise.

Definition at line 264 of file class.ilPortfolioExerciseGUI.php.

265 {
268
269 $exc_gui = ilExSubmissionObjectGUI::initGUIForSubmit($this->ass_id);
270 $exc_gui->submitPortfolio($this->obj_id);
271
272 ilUtil::sendSuccess($lng->txt("prtf_finalized"), true);
273 $ilCtrl->returnToParent($this);
274 }
static initGUIForSubmit($a_ass_id, $a_user_id=null)

References $ctrl, $ilCtrl, $lng, and ilExSubmissionObjectGUI\initGUIForSubmit().

+ Here is the call graph for this function:

◆ getActionButtons()

ilPortfolioExerciseGUI::getActionButtons ( )

Get action buttons.

Returns
array

Definition at line 334 of file class.ilPortfolioExerciseGUI.php.

335 {
336 $pe = new ilPortfolioExercise($this->user_id, $this->obj_id);
337
338 $buttons = [];
339 foreach ($pe->getAssignmentsOfPortfolio() as $exercise) {
340 $ass_id = $exercise["ass_id"];
341 $buttons[$ass_id] = [];
342 $submit_button = $this->getSubmitButton($ass_id);
343 if ($submit_button != null) {
344 $buttons[$ass_id][] = $submit_button;
345 }
346 $download_button = $this->getDownloadSubmissionButton($ass_id);
347 if ($download_button != null) {
348 $buttons[$ass_id][] = $download_button;
349 }
350 }
351
352 return $buttons;
353 }
getSubmitButton(int $ass_id)
Get submit link.
getDownloadSubmissionButton(int $ass_id)
Get download button.

References $ass_id, $exercise, $pe, getDownloadSubmissionButton(), and getSubmitButton().

+ Here is the call graph for this function:

◆ getDownloadSubmissionButton()

ilPortfolioExerciseGUI::getDownloadSubmissionButton ( int  $ass_id)

Get download button.

Parameters

return

Definition at line 306 of file class.ilPortfolioExerciseGUI.php.

307 {
310 $ui = $this->ui;
311
312 // submitted files
313 $submission = new ilExSubmission(new ilExAssignment($ass_id), $this->user_id);
314 if ($submission->hasSubmitted()) {
315 // #16888
316 $submitted = $submission->getSelectedObject();
317 if ($submitted["ts"] != "") {
318 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $ass_id);
319 $dl_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "downloadExcSubFile");
320 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
321 $button = $ui->factory()->button()->standard($lng->txt("prtf_download_submission"), $dl_link);
322 return $button;
323 }
324 }
325 return null;
326 }

References $ass_id, $ctrl, $ilCtrl, $lng, and $ui.

Referenced by getActionButtons().

+ Here is the caller graph for this function:

◆ getExerciseInfo()

static ilPortfolioExerciseGUI::getExerciseInfo (   $a_user_id,
  $a_assignment_id,
  $a_add_submit = false,
  $as_array = false 
)
staticprotected
Deprecated:
Parameters
$a_user_id
$a_assignment_id
bool$a_add_submit
bool$as_array
Returns
string

Definition at line 101 of file class.ilPortfolioExerciseGUI.php.

102 {
103 global $DIC;
104
105 $ui = $DIC->ui();
106
107 $links = [];
108 $buttons = [];
109 $elements = [];
110
111 $lng = $DIC->language();
112 $ilCtrl = $DIC->ctrl();
113
114 $ass = new ilExAssignment($a_assignment_id);
115 $exercise_id = $ass->getExerciseId();
116 if (!$exercise_id) {
117 return;
118 }
119
120 // is the assignment still open?
121 $times_up = $ass->afterDeadlineStrict();
122
123 // exercise goto
124 $exc_ref_id = array_shift(ilObject::_getAllReferences($exercise_id));
125 $exc_link = ilLink::_getStaticLink($exc_ref_id, "exc");
126
127 $info_arr["ass_title"] = $ass->getTitle();
128 $text = sprintf(
129 $lng->txt("prtf_exercise_info"),
130 $ass->getTitle(),
131 ilObject::_lookupTitle($exercise_id)
132 );
133 $links[] = $ui->factory()->link()->standard(ilObject::_lookupTitle($exercise_id), $exc_link);
134 $info_arr["exc_title"] = ilObject::_lookupTitle($exercise_id);
135
136 // submit button
137 if ($a_add_submit && !$times_up && !$as_array) {
138 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
139 $submit_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "finalize");
140 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
141
142 $buttons[] = $ui->factory()->button()->primary($lng->txt("prtf_finalize_portfolio"), $submit_link);
143 }
144
145 // submitted files
146 $submission = new ilExSubmission($ass, $a_user_id);
147 $info_arr["submitted"] = false;
148 if ($submission->hasSubmitted()) {
149 // #16888
150 $submitted = $submission->getSelectedObject();
151
152 if (!$as_array) {
153 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
154 $dl_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "downloadExcSubFile");
155 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
156
159
160 $text .= "<p>" . sprintf(
161 $lng->txt("prtf_exercise_submitted_info"),
163 ""
164 ) . "</p>";
165 $buttons[] = $ui->factory()->button()->standard($lng->txt("prtf_download_submission"), $dl_link);
166 }
167
169 $info_arr["submitted_date"] = ilDatePresentation::formatDate(new ilDateTime($submitted["ts"], IL_CAL_DATETIME));
170 $info_arr["submitted"] = true;
171 if ($submitted["ts"] == "") {
172 $info_arr["submitted"] = false;
173 }
174 }
175
176 // work instructions incl. files
177
178 $tooltip = "";
179
180 $inst = $ass->getInstruction();
181 if ($inst) {
182 $tooltip .= nl2br($inst);
183 }
184
185 $ass_files = $ass->getFiles();
186 if (!$as_array) {
187 if (count($ass_files) > 0) {
188 if ($tooltip) {
189 $tooltip .= "<br /><br />";
190 }
191
192 $items = [];
193
194 foreach ($ass_files as $file) {
195 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $a_assignment_id);
196 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "file", urlencode($file["name"]));
197 $dl_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "downloadExcAssFile");
198 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "file", "");
199 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
200
201 $items[] = $ui->renderer()->render($ui->factory()->button()->shy($file["name"], $dl_link));
202 }
203 $list = $ui->factory()->listing()->unordered($items);
204 $tooltip .= $ui->renderer()->render($list);
205 }
206 }
207
208 if ($tooltip) {
209 $modal = $ui->factory()->modal()->roundtrip($lng->txt("exc_instruction"), $ui->factory()->legacy($tooltip))
210 ->withCancelButtonLabel("close");
211 $elements[] = $modal;
212 $buttons[] = $ui->factory()->button()->standard($lng->txt("exc_instruction"), '#')
213 ->withOnClick($modal->getShowSignal());
214 }
215
216 if ($as_array) {
217 return $info_arr;
218 }
219
220 $elements[] = $ui->factory()->messageBox()->info($text)
221 ->withLinks($links)
222 ->withButtons($buttons);
223
224 return $ui->renderer()->render($elements);
225 }
const IL_CAL_DATETIME
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
static setUseRelativeDates($a_status)
set use relative dates
static useRelativeDates()
check if relative dates are used
@classDescription Date and time handling
static _getAllReferences($a_id)
get all reference ids of object

References $DIC, $file, $ilCtrl, $lng, $ui, ilObject\_getAllReferences(), ilLink\_getStaticLink(), ilObject\_lookupTitle(), ilDatePresentation\formatDate(), IL_CAL_DATETIME, ilDatePresentation\setUseRelativeDates(), and ilDatePresentation\useRelativeDates().

Referenced by checkExercise().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSubmitButton()

ilPortfolioExerciseGUI::getSubmitButton ( int  $ass_id)

Get submit link.

Parameters
int$ass_id
Returns
object

Definition at line 282 of file class.ilPortfolioExerciseGUI.php.

283 {
285 $ui = $this->ui;
287
288 $state = ilExcAssMemberState::getInstanceByIds($ass_id, $this->user_id);
289
290 if ($state->isSubmissionAllowed()) {
291 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", $ass_id);
292 $submit_link = $ilCtrl->getLinkTargetByClass("ilportfolioexercisegui", "finalize");
293 $ilCtrl->setParameterByClass("ilportfolioexercisegui", "ass", "");
294 $button = $ui->factory()->button()->primary($lng->txt("prtf_finalize_portfolio"), $submit_link);
295 return $button;
296 }
297 return null;
298 }
static getInstanceByIds($a_ass_id, $a_user_id=0)
Get instance by IDs (recommended for consumer code)

References $ass_id, $ctrl, $ilCtrl, $lng, $ui, and ilExcAssMemberState\getInstanceByIds().

Referenced by getActionButtons().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $ass_id

ilPortfolioExerciseGUI::$ass_id
protected

◆ $ctrl

ilPortfolioExerciseGUI::$ctrl
protected

◆ $file

ilPortfolioExerciseGUI::$file
protected

Definition at line 27 of file class.ilPortfolioExerciseGUI.php.

Referenced by downloadExcAssFile(), and getExerciseInfo().

◆ $lng

ilPortfolioExerciseGUI::$lng
protected

◆ $obj_id

ilPortfolioExerciseGUI::$obj_id
protected

Definition at line 25 of file class.ilPortfolioExerciseGUI.php.

◆ $pe

ilPortfolioExerciseGUI::$pe
protected

Definition at line 32 of file class.ilPortfolioExerciseGUI.php.

Referenced by checkExercise(), and getActionButtons().

◆ $ui

ilPortfolioExerciseGUI::$ui
protected

◆ $user_id

ilPortfolioExerciseGUI::$user_id
protected

Definition at line 24 of file class.ilPortfolioExerciseGUI.php.


The documentation for this class was generated from the following file: