ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilExSubmissionFileGUI Class Reference

File-based submissions. More...

+ Inheritance diagram for ilExSubmissionFileGUI:
+ Collaboration diagram for ilExSubmissionFileGUI:

Public Member Functions

 __construct (ilObjExercise $a_exercise, ilExSubmission $a_submission)
 Constructor. More...
 
 executeCommand ()
 
 submissionScreenObject ()
 Displays a form which allows members to deliver their solutions. More...
 
 uploadFormObject (ilPropertyFormGUI $a_form=null)
 Display form for single file upload. More...
 
 uploadZipFormObject (ilPropertyFormGUI $a_form=null)
 Display form for zip file upload. More...
 
 uploadFileObject ()
 Upload files. More...
 
 uploadZipObject ()
 Upload zip file. More...
 
 confirmDeleteDeliveredObject ()
 Confirm deletion of delivered files. More...
 
 deleteDeliveredObject ()
 Delete file(s) submitted by user. More...
 
 downloadReturnedObject ($a_only_new=false)
 Download submitted files of user. More...
 
 downloadNewReturnedObject ()
 Download newly submitted files of user. More...
 
 downloadObject ()
 User downloads (own) submitted files. More...
 
- Public Member Functions inherited from ilExSubmissionBaseGUI
 __construct (ilObjExercise $a_exercise, ilExSubmission $a_submission)
 
 returnToParentObject ()
 

Static Public Member Functions

static getOverviewContent (ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
 
static getOverviewContent (ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
 

Protected Member Functions

 initUploadForm ()
 Init upload form form. More...
 
 initZipUploadForm ()
 Init upload form form. More...
 
- Protected Member Functions inherited from ilExSubmissionBaseGUI
 handleTabs ()
 
 handleNewUpload ($a_no_notifications=false)
 
 handleRemovedUpload ()
 

Protected Attributes

 $toolbar
 
 $help
 
 $user
 
- Protected Attributes inherited from ilExSubmissionBaseGUI
 $ctrl
 
 $tabs_gui
 
 $lng
 
 $tpl
 
 $exercise
 
 $submission
 
 $assignment
 

Detailed Description

File-based submissions.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om

@ilCtrl_Calls ilExSubmissionFileGUI:

Definition at line 12 of file class.ilExSubmissionFileGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilExSubmissionFileGUI::__construct ( ilObjExercise  $a_exercise,
ilExSubmission  $a_submission 
)

Constructor.

Reimplemented from ilExSubmissionBaseGUI.

Definition at line 33 of file class.ilExSubmissionFileGUI.php.

34 {
35 global $DIC;
36
37 parent::__construct($a_exercise, $a_submission);
38
39 $this->toolbar = $DIC->toolbar();
40 $this->help = $DIC["ilHelp"];
41 $this->user = $DIC->user();
42 }
user()
Definition: user.php:4
global $DIC
Definition: saml.php:7

References $DIC, and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ confirmDeleteDeliveredObject()

ilExSubmissionFileGUI::confirmDeleteDeliveredObject ( )

Confirm deletion of delivered files.

Definition at line 330 of file class.ilExSubmissionFileGUI.php.

331 {
335
336 if (!$this->submission->canSubmit()) {
337 ilUtil::sendFailure($this->lng->txt("exercise_time_over"), true);
338 $ilCtrl->redirect($this, "submissionScreen");
339 }
340
341 if (!is_array($_POST["delivered"]) || count($_POST["delivered"]) == 0) {
342 ilUtil::sendFailure($lng->txt("no_checkbox"), true);
343 $ilCtrl->redirect($this, "submissionScreen");
344 } else {
345 $this->tabs_gui->clearTargets();
346 $this->tabs_gui->setBackTarget(
347 $this->lng->txt("back"),
348 $this->ctrl->getLinkTarget($this, "submissionScreen")
349 );
350
351 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
352 $cgui = new ilConfirmationGUI();
353 $cgui->setFormAction($ilCtrl->getFormAction($this));
354 $cgui->setHeaderText($lng->txt("info_delete_sure"));
355 $cgui->setCancel($lng->txt("cancel"), "submissionScreen");
356 $cgui->setConfirm($lng->txt("delete"), "deleteDelivered");
357
358 $files = $this->submission->getFiles();
359
360 foreach ($_POST["delivered"] as $i) {
361 reset($files);
362 $title = "";
363 foreach ($files as $f) {
364 if ($f["returned_id"] == $i) {
365 $title = $f["filetitle"];
366 }
367 }
368 $cgui->addItem("delivered[]", $i, $title);
369 }
370
371 $tpl->setContent($cgui->getHTML());
372 }
373 }
$files
Definition: add-vimline.php:18
$_POST["username"]
Confirmation screen class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$i
Definition: disco.tpl.php:19
global $ilCtrl
Definition: ilias.php:18

References $_POST, ilExSubmissionBaseGUI\$ctrl, $files, $i, $ilCtrl, ilExSubmissionBaseGUI\$lng, $title, ilExSubmissionBaseGUI\$tpl, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteDeliveredObject()

ilExSubmissionFileGUI::deleteDeliveredObject ( )

Delete file(s) submitted by user.

Parameters

return

Definition at line 381 of file class.ilExSubmissionFileGUI.php.

382 {
384
385 if (!$this->submission->canSubmit()) {
386 ilUtil::sendFailure($this->lng->txt("exercise_time_over"), true);
387 } elseif (!count($_POST["delivered"])) {
388 ilUtil::sendFailure($this->lng->txt("please_select_a_delivered_file_to_delete"), true);
389 } else {
390 $this->submission->deleteSelectedFiles($_POST["delivered"]);
391 $this->handleRemovedUpload();
392
393 ilUtil::sendSuccess($this->lng->txt("exc_submitted_files_deleted"), true);
394 }
395 $ilCtrl->redirect($this, "submissionScreen");
396 }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.

References $_POST, ilExSubmissionBaseGUI\$ctrl, $ilCtrl, ilExSubmissionBaseGUI\handleRemovedUpload(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ downloadNewReturnedObject()

ilExSubmissionFileGUI::downloadNewReturnedObject ( )

Download newly submitted files of user.

Definition at line 425 of file class.ilExSubmissionFileGUI.php.

426 {
427 $this->downloadReturnedObject(true);
428 }
downloadReturnedObject($a_only_new=false)
Download submitted files of user.

References downloadReturnedObject().

+ Here is the call graph for this function:

◆ downloadObject()

ilExSubmissionFileGUI::downloadObject ( )

User downloads (own) submitted files.

Parameters

return

Definition at line 436 of file class.ilExSubmissionFileGUI.php.

437 {
439
440 $delivered_id = $_REQUEST["delivered"];
441
442 if (!$this->submission->canView()) {
443 $this->returnToParentObject();
444 }
445
446 if (!is_array($delivered_id) && $delivered_id > 0) {
447 $delivered_id = [$delivered_id];
448 }
449 if (is_array($delivered_id) && count($delivered_id) > 0) {
450 $this->submission->downloadFiles($delivered_id);
451 exit;
452 } else {
453 ilUtil::sendFailure($this->lng->txt("please_select_a_delivered_file_to_download"), true);
454 $ilCtrl->redirect($this, "submissionScreen");
455 }
456 }

References ilExSubmissionBaseGUI\$ctrl, $ilCtrl, exit, ilExSubmissionBaseGUI\returnToParentObject(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ downloadReturnedObject()

ilExSubmissionFileGUI::downloadReturnedObject (   $a_only_new = false)

Download submitted files of user.

Definition at line 401 of file class.ilExSubmissionFileGUI.php.

402 {
404
405 $peer_review_mask_filename = false;
406
407 if ($this->submission->canView()) {
408 $peer_review_mask_filename = $this->submission->hasPeerReviewAccess();
409 } else {
410 // no access
411 return;
412 }
413
414 $this->submission->downloadFiles(null, $a_only_new, $peer_review_mask_filename);
415 // we only get here, if no files have been found for download
416 if ($a_only_new) {
417 ilUtil::sendInfo($lng->txt("exc_all_new_files_offered_already"), true);
418 }
419 $this->returnToParentObject();
420 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References ilExSubmissionBaseGUI\$lng, ilExSubmissionBaseGUI\returnToParentObject(), and ilUtil\sendInfo().

Referenced by downloadNewReturnedObject().

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

◆ executeCommand()

ilExSubmissionFileGUI::executeCommand ( )

Definition at line 44 of file class.ilExSubmissionFileGUI.php.

45 {
47
48 if (!$this->submission->canView()) {
49 $this->returnToParentObject();
50 }
51
52 $class = $ilCtrl->getNextClass($this);
53 $cmd = $ilCtrl->getCmd("submissionScreen");
54
55 switch ($class) {
56 default:
57 $this->{$cmd . "Object"}();
58 break;
59 }
60 }

References ilExSubmissionBaseGUI\$ctrl, $ilCtrl, and ilExSubmissionBaseGUI\returnToParentObject().

+ Here is the call graph for this function:

◆ getOverviewContent()

static ilExSubmissionFileGUI::getOverviewContent ( ilInfoScreenGUI  $a_info,
ilExSubmission  $a_submission 
)
static

Reimplemented from ilExSubmissionBaseGUI.

Definition at line 62 of file class.ilExSubmissionFileGUI.php.

63 {
64 global $DIC;
65
66 $lng = $DIC->language();
67 $ilCtrl = $DIC->ctrl();
68
69 $titles = array();
70 foreach ($a_submission->getFiles() as $file) {
71 $titles[] = $file["filetitle"];
72 }
73 $files_str = implode($titles, "<br>");
74 if ($files_str == "") {
75 $files_str = $lng->txt("message_no_delivered_files");
76 }
77
78 // no team == no submission
79 if (!$a_submission->hasNoTeamYet()) {
80 if ($a_submission->canSubmit()) {
81 $title = (count($titles) == 0
82 ? $lng->txt("exc_hand_in")
83 : $lng->txt("exc_edit_submission"));
84
85 $button = ilLinkButton::getInstance();
86 $button->setPrimary(true);
87 $button->setCaption($title, false);
88 $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionFileGUI"), "submissionScreen"));
89 $files_str.= "<br><br>" . $button->render();
90 } else {
91 if (count($titles) > 0) {
92 $button = ilLinkButton::getInstance();
93 $button->setCaption("already_delivered_files");
94 $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionFileGUI"), "submissionScreen"));
95 $files_str.= "<br>" . $button->render();
96 }
97 }
98 }
99
100 $a_info->addProperty($lng->txt("exc_files_returned"), $files_str);
101 }
getFiles(array $a_file_ids=null, $a_only_valid=false, $a_min_timestamp=null)
addProperty($a_name, $a_value, $a_link="")
add a property to current section
static getInstance()
Factory.
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file

References $DIC, $file, $ilCtrl, ilExSubmissionBaseGUI\$lng, $title, ilInfoScreenGUI\addProperty(), ilExSubmission\canSubmit(), ilExSubmission\getFiles(), ilLinkButton\getInstance(), and ilExSubmission\hasNoTeamYet().

+ Here is the call graph for this function:

◆ initUploadForm()

ilExSubmissionFileGUI::initUploadForm ( )
protected

Init upload form form.

Definition at line 209 of file class.ilExSubmissionFileGUI.php.

210 {
213
214 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
215 $form = new ilPropertyFormGUI();
216
217 // file input
218 include_once("./Services/Form/classes/class.ilFileWizardInputGUI.php");
219 $fi = new ilFileWizardInputGUI($lng->txt("file"), "deliver");
220 $fi->setFilenames(array(0 => ''));
221 $fi->setRequired(true);
222 $form->addItem($fi);
223
224 $form->addCommandButton("uploadFile", $lng->txt("upload"));
225 $form->addCommandButton("submissionScreen", $lng->txt("cancel"));
226
227 $form->setTitle($lng->txt("file_add"));
228 $form->setFormAction($ilCtrl->getFormAction($this, "uploadFile"));
229
230 return $form;
231 }
This class represents a file wizard property in a property form.
This class represents a property form user interface.
if(isset($_POST['submit'])) $form

References ilExSubmissionBaseGUI\$ctrl, $form, $ilCtrl, and ilExSubmissionBaseGUI\$lng.

Referenced by uploadFileObject(), and uploadFormObject().

+ Here is the caller graph for this function:

◆ initZipUploadForm()

ilExSubmissionFileGUI::initZipUploadForm ( )
protected

Init upload form form.

Definition at line 236 of file class.ilExSubmissionFileGUI.php.

237 {
240
241 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
242 $form = new ilPropertyFormGUI();
243
244 include_once("./Services/Form/classes/class.ilFileInputGUI.php");
245 $fi = new ilFileInputGUI($lng->txt("file"), "deliver");
246 $fi->setSuffixes(array("zip"));
247 $fi->setRequired(true);
248 $form->addItem($fi);
249
250 $form->addCommandButton("uploadZip", $lng->txt("upload"));
251 $form->addCommandButton("submissionScreen", $lng->txt("cancel"));
252
253 $form->setTitle($lng->txt("header_zip"));
254 $form->setFormAction($ilCtrl->getFormAction($this, "uploadZip"));
255
256 return $form;
257 }
This class represents a file property in a property form.

References ilExSubmissionBaseGUI\$ctrl, $form, $ilCtrl, and ilExSubmissionBaseGUI\$lng.

Referenced by uploadZipFormObject(), and uploadZipObject().

+ Here is the caller graph for this function:

◆ submissionScreenObject()

ilExSubmissionFileGUI::submissionScreenObject ( )

Displays a form which allows members to deliver their solutions.

@access public

Definition at line 108 of file class.ilExSubmissionFileGUI.php.

109 {
110 $ilToolbar = $this->toolbar;
111 $ilHelp = $this->help;
113
114
115 $this->handleTabs();
116
117 $ilHelp->setScreenIdComponent("exc");
118 $ilHelp->setScreenId("submissions");
119
120 if (!$this->submission->canSubmit()) {
121 ilUtil::sendInfo($this->lng->txt("exercise_time_over"));
122 } else {
123 $max_files = $this->submission->getAssignment()->getMaxFile();
124
125 if ($this->submission->canAddFile()) {
126 // #15883 - extended deadline warning
127 $deadline = $this->assignment->getPersonalDeadline($ilUser->getId());
128 if ($deadline &&
129 time() > $deadline) {
131 $dl = sprintf($this->lng->txt("exc_late_submission_warning"), $dl);
132 $dl = '<span class="warning">' . $dl . '</span>';
133 $ilToolbar->addText($dl);
134 }
135
136 $ilToolbar->addButton(
137 $this->lng->txt("file_add"),
138 $this->ctrl->getLinkTarget($this, "uploadForm")
139 );
140
141 if (!$max_files ||
142 $max_files > 1) {
143 $ilToolbar->addButton(
144 $this->lng->txt("header_zip"),
145 $this->ctrl->getLinkTarget($this, "uploadZipForm")
146 );
147 }
148 }
149
150 if ($max_files) {
151 ilUtil::sendInfo(sprintf($this->lng->txt("exc_max_file_reached"), $max_files));
152 }
153 }
154
155 include_once("./Modules/Exercise/classes/class.ilExcDeliveredFilesTableGUI.php");
156 $tab = new ilExcDeliveredFilesTableGUI($this, "submissionScreen", $this->submission);
157 $this->tpl->setContent($tab->getHTML());
158 }
sprintf('%.4f', $callTime)
const IL_CAL_UNIX
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
@classDescription Date and time handling
$ilUser
Definition: imgupload.php:18

References $help, $ilUser, $tab, $toolbar, $user, ilDatePresentation\formatDate(), ilExSubmissionBaseGUI\handleTabs(), IL_CAL_UNIX, ilUtil\sendInfo(), and sprintf.

+ Here is the call graph for this function:

◆ uploadFileObject()

ilExSubmissionFileGUI::uploadFileObject ( )

Upload files.

Definition at line 262 of file class.ilExSubmissionFileGUI.php.

263 {
265
266 // #15322
267 if (!$this->submission->canSubmit()) {
268 ilUtil::sendInfo($this->lng->txt("exercise_time_over"), true);
269 } else {
270 $form = $this->initUploadForm();
271 if (!$form->checkInput()) {
272 return $this->uploadFormObject($form);
273 }
274
275 $success = false;
276 foreach ($_FILES["deliver"]["name"] as $k => $v) {
277 $file = array(
278 "name" => $_FILES["deliver"]["name"][$k],
279 "type" => $_FILES["deliver"]["type"][$k],
280 "tmp_name" => $_FILES["deliver"]["tmp_name"][$k],
281 "error" => $_FILES["deliver"]["error"][$k],
282 "size" => $_FILES["deliver"]["size"][$k],
283 );
284 if (!$this->submission->uploadFile($file)) {
285 ilUtil::sendFailure($this->lng->txt("exc_upload_error") . " [Single File]", true);
286 } else {
287 $success = true;
288 }
289 }
290
291 if ($success) {
292 ilUtil::sendSuccess($this->lng->txt("file_added"), true);
293 $this->handleNewUpload();
294 }
295 }
296
297 $ilCtrl->redirect($this, "submissionScreen");
298 }
$success
Definition: Utf8Test.php:86
handleNewUpload($a_no_notifications=false)
initUploadForm()
Init upload form form.
uploadFormObject(ilPropertyFormGUI $a_form=null)
Display form for single file upload.

References ilExSubmissionBaseGUI\$ctrl, $file, $form, $ilCtrl, $success, ilExSubmissionBaseGUI\handleNewUpload(), initUploadForm(), ilUtil\sendFailure(), ilUtil\sendInfo(), ilUtil\sendSuccess(), and uploadFormObject().

+ Here is the call graph for this function:

◆ uploadFormObject()

ilExSubmissionFileGUI::uploadFormObject ( ilPropertyFormGUI  $a_form = null)

Display form for single file upload.

Definition at line 163 of file class.ilExSubmissionFileGUI.php.

164 {
165 if (!$this->submission->canSubmit()) {
166 $this->ctrl->redirect($this, "submissionScreen");
167 }
168
169 $this->tabs_gui->clearTargets();
170 $this->tabs_gui->setBackTarget(
171 $this->lng->txt("back"),
172 $this->ctrl->getLinkTarget($this, "submissionScreen")
173 );
174
175 $ilHelp = $this->help;
176 $ilHelp->setScreenIdComponent("exc");
177 $ilHelp->setScreenId("upload_submission");
178
179 if (!$a_form) {
180 $a_form = $this->initUploadForm();
181 }
182 $this->tpl->setContent($a_form->getHTML());
183 }

References $help, and initUploadForm().

Referenced by uploadFileObject().

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

◆ uploadZipFormObject()

ilExSubmissionFileGUI::uploadZipFormObject ( ilPropertyFormGUI  $a_form = null)

Display form for zip file upload.

Definition at line 188 of file class.ilExSubmissionFileGUI.php.

189 {
190 if (!$this->submission->canSubmit()) {
191 $this->ctrl->redirect($this, "submissionScreen");
192 }
193
194 $this->tabs_gui->clearTargets();
195 $this->tabs_gui->setBackTarget(
196 $this->lng->txt("back"),
197 $this->ctrl->getLinkTarget($this, "submissionScreen")
198 );
199
200 if (!$a_form) {
201 $a_form = $this->initZipUploadForm();
202 }
203 $this->tpl->setContent($a_form->getHTML());
204 }
initZipUploadForm()
Init upload form form.

References initZipUploadForm().

Referenced by uploadZipObject().

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

◆ uploadZipObject()

ilExSubmissionFileGUI::uploadZipObject ( )

Upload zip file.

Definition at line 303 of file class.ilExSubmissionFileGUI.php.

304 {
306
307 // #15322
308 if (!$this->submission->canSubmit()) {
309 ilUtil::sendInfo($this->lng->txt("exercise_time_over"), true);
310 } else {
311 $form = $this->initZipUploadForm();
312 if (!$form->checkInput()) {
313 return $this->uploadZipFormObject($form);
314 }
315
316 if (preg_match("/zip/", $_FILES["deliver"]["type"]) == 1) {
317 if ($this->submission->processUploadedZipFile($_FILES["deliver"]["tmp_name"])) {
318 ilUtil::sendSuccess($this->lng->txt("file_added"), true);
319 $this->handleNewUpload();
320 }
321 }
322 }
323
324 $ilCtrl->redirect($this, "submissionScreen");
325 }
uploadZipFormObject(ilPropertyFormGUI $a_form=null)
Display form for zip file upload.

References ilExSubmissionBaseGUI\$ctrl, $form, $ilCtrl, ilExSubmissionBaseGUI\handleNewUpload(), initZipUploadForm(), ilUtil\sendInfo(), ilUtil\sendSuccess(), and uploadZipFormObject().

+ Here is the call graph for this function:

Field Documentation

◆ $help

ilExSubmissionFileGUI::$help
protected

Definition at line 22 of file class.ilExSubmissionFileGUI.php.

Referenced by submissionScreenObject(), and uploadFormObject().

◆ $toolbar

ilExSubmissionFileGUI::$toolbar
protected

Definition at line 17 of file class.ilExSubmissionFileGUI.php.

Referenced by submissionScreenObject().

◆ $user

ilExSubmissionFileGUI::$user
protected

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

Referenced by submissionScreenObject().


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