41 $this->selected_wsp_obj_id = $this->request->getSelectedWspObjId();
48 if (!$this->submission->canView()) {
52 $class = $ilCtrl->getNextClass($this);
53 $cmd = $ilCtrl->getCmd();
57 $this->{$cmd .
"Object"}();
66 switch ($a_submission->getAssignment()->getType()) {
72 self::getOverviewContentPortfolio($a_info, $a_submission);
84 $ilCtrl =
$DIC->ctrl();
89 if (!$wsp_tree->getRootId()) {
90 $wsp_tree->createTreeForUser($a_submission->
getUserId());
98 $blog_id = (
int) $selected_blog[
"filetitle"];
99 $node = $wsp_tree->getNodeData($blog_id);
100 if ($node[
"title"]) {
102 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id", $blog_id);
103 $blog_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilpersonalworkspacegui",
"ilobjbloggui"),
"");
104 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id",
"");
105 $files_str =
'<a href="' . $blog_link .
'">' .
106 $node[
"title"] .
'</a>';
110 elseif (substr($selected_blog[
"filename"], -1) ==
"/") {
118 $button->setCaption(
"exc_create_blog");
119 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createBlog"));
120 $buttons_str .= $button->render();
123 $blogs = count($wsp_tree->getObjectsFromType(
"blog"));
124 if ((!$valid_blog && $blogs)
125 || ($valid_blog && $blogs > 1)) {
127 $button->setCaption(
"exc_select_blog" . ($valid_blog ?
"_change" :
""));
128 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectBlog"));
129 $buttons_str .=
" " . $button->render();
134 if ($buttons_str !=
"") {
135 $files_str .=
"<p>" . $buttons_str .
"</p>";
143 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_blog[
"returned_id"]);
144 $dl_link = $ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
145 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
148 $button->setCaption(
"download");
149 $button->setUrl($dl_link);
151 $a_info->
addProperty(
$lng->txt(
"exc_files_returned"), $button->render());
160 $back_ref_id =
$DIC->http()->wrapper()->query()->retrieve(
162 $DIC->refinery()->kindlyTo()->int()
165 $request =
$DIC->exercise()->internal()->gui()->request();
169 $ilCtrl =
$DIC->ctrl();
175 if ($selected_prtf) {
176 $portfolio_id = (
int) $selected_prtf[
"filetitle"];
181 if ($portfolio->getTitle()) {
183 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id", $portfolio_id);
185 $ref_id = $request->getRefId();
186 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id",
$ref_id);
187 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", $back_ref_id);
189 $prtf_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilportfoliorepositorygui",
"ilobjportfoliogui"),
"view");
190 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id",
"");
191 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id",
"");
194 $files_str =
'<a href="' . $prtf_link .
195 '">' . $portfolio->getTitle() .
'</a>';
200 elseif (substr($selected_prtf[
"filename"], -1) ==
"/") {
208 $button->setCaption(
"exc_create_portfolio");
209 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createPortfolioFromAssignment"));
211 $buttons_str .= $button->render();
216 if ((!$valid_prtf && $prtfs)
217 || ($valid_prtf && $prtfs > 1)) {
219 $button->setCaption(
"exc_select_portfolio" . ($valid_prtf ?
"_change" :
""));
220 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectPortfolio"));
221 $buttons_str .=
" " . $button->render();
225 $button->setCaption(
'exc_select_portfolio_unlink');
226 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"askUnlinkPortfolio"));
227 $buttons_str .=
" " . $button->render();
231 if ($buttons_str !=
"") {
232 $files_str .=
"<p>" . $buttons_str .
"</p>";
238 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_prtf[
"returned_id"]);
239 $dl_link = $ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
240 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
243 $button->setCaption(
"download");
244 $button->setUrl($dl_link);
246 $a_info->
addProperty(
$lng->txt(
"exc_files_returned"), $button->render());
254 string $a_explorer_cmd,
255 array $a_items =
null
257 if (!$this->submission->canSubmit()) {
258 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
259 $this->returnToParentObject();
263 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"Modules/Exercise");
265 if (is_array($a_items)) {
266 $tpl->setCurrentBlock(
"item");
267 foreach ($a_items as $item_id => $item_title) {
268 $tpl->setVariable(
"ITEM_ID", $item_id);
269 $tpl->setVariable(
"ITEM_TITLE", $item_title);
270 $tpl->parseCurrentBlock();
272 $tpl->setVariable(
"FORM_ACTION", $this->
ctrl->getFormAction($this));
273 $tpl->setVariable(
"TXT_SUBMIT", $this->
lng->txt(
"save"));
274 $tpl->setVariable(
"TXT_CANCEL", $this->
lng->txt(
"cancel"));
275 $tpl->setVariable(
"CMD_SUBMIT", $a_cmd);
276 $tpl->setVariable(
"CMD_CANCEL",
"returnToParent");
278 } elseif ($a_explorer_cmd) {
279 $html = $this->renderWorkspaceExplorer($a_explorer_cmd);
283 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt($a_info));
285 $title = $this->
lng->txt($a_title) .
": " . $this->assignment->getTitle();
289 $panel->setHeading($title);
291 $this->tpl->setContent(
$panel->getHTML());
303 $this->renderResourceSelection(
305 "exc_create_blog_select_info",
315 $this->renderResourceSelection(
317 "exc_select_blog_info",
329 if (!$this->submission->canSubmit()) {
330 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
331 $this->returnToParentObject();
334 if ($this->selected_wsp_obj_id == 0) {
335 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"));
336 $this->createBlogObject();
340 $parent_node = $this->selected_wsp_obj_id;
343 $blog->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
348 $node_id = $tree->insertObject($parent_node, $blog->getId());
351 $access_handler->setPermissions($parent_node, $node_id);
353 $this->submission->deleteAllFiles();
354 $this->handleRemovedUpload();
356 $this->submission->addResourceObject($node_id);
358 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_blog_created"),
true);
359 $this->returnToParentObject();
368 if (!$this->submission->canSubmit()) {
369 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
370 $this->returnToParentObject();
373 if ($this->selected_wsp_obj_id > 0) {
375 $node = $tree->getNodeData($this->selected_wsp_obj_id);
376 if ($node && $node[
"type"] ==
"blog") {
377 $this->submission->deleteAllFiles();
378 $this->handleRemovedUpload();
380 $this->submission->addResourceObject($node[
"wsp_id"]);
382 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_blog_selected"),
true);
383 $this->
ctrl->setParameter($this,
"blog_id", $node[
"wsp_id"]);
384 $this->
ctrl->redirect($this,
"askDirectSubmission");
388 $this->selectBlogObject();
397 $exp2 =
new ilWorkspaceExplorerGUI($this->submission->getUserId(), $this, $a_cmd, $this,
"setSelectedBlog");
398 $exp2->setTypeWhiteList(array(
"blog",
"wsrt",
"wfld"));
399 $exp2->setSelectableTypes(array(
"blog"));
404 $exp2->setTypeWhiteList(array(
"wsrt",
"wfld"));
405 $exp2->setSelectableTypes(array(
"wsrt",
"wfld"));
408 if (!$exp2->handleCommand()) {
409 return $exp2->getHTML();
425 foreach ($portfolios as $portfolio) {
426 $items[$portfolio[
"id"]] = $portfolio[
"title"];
429 $this->renderResourceSelection(
430 "exc_select_portfolio",
431 "exc_select_portfolio_info",
432 "setSelectedPortfolio",
442 $form->
setTitle($this->
lng->txt(
"exc_create_portfolio") .
": " . $this->assignment->getTitle());
443 $form->setFormAction($this->
ctrl->getFormAction($this,
"setSelectedPortfolioTemplate"));
446 $prtt->setRequired(
true);
447 $prtt->addOption(
new ilRadioOption($this->
lng->txt(
"exc_create_portfolio_no_template"), -1));
448 foreach ($a_templates as
$id => $title) {
452 $form->addItem($prtt);
454 $form->addCommandButton(
"setSelectedPortfolioTemplate", $this->
lng->txt(
"save"));
455 $form->addCommandButton(
"returnToParent", $this->
lng->txt(
"cancel"));
464 $ctrl =
$DIC->ctrl();
469 $template_id = $this->assignment->getPortfolioTemplateId();
474 if ($templates !== [] && $template_object_id == 0) {
475 $this->createPortfolioTemplateObject();
479 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
480 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->exercise->getRefId());
481 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->assignment->getId());
482 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
484 if ($template_object_id > 0) {
485 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $template_object_id);
487 $ctrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", $this->requested_ref_id);
488 $ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromAssignment");
494 if (!$this->submission->canSubmit()) {
495 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
496 $this->returnToParentObject();
500 if ($templates === []) {
501 $this->returnToParentObject();
504 if ($a_form ===
null) {
505 $a_form = $this->initPortfolioTemplateForm($templates);
508 $this->tpl->setContent($a_form->getHTML());
517 if (!$this->submission->canSubmit()) {
518 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
519 $this->returnToParentObject();
523 if ($templates === []) {
524 $this->
ctrl->redirect($this,
"returnToParent");
527 $form = $this->initPortfolioTemplateForm($templates);
528 if ($form->checkInput()) {
529 $prtt = $form->getInput(
"prtt");
530 if ($prtt > 0 && array_key_exists($prtt, $templates)) {
531 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
532 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->exercise->getRefId());
533 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->assignment->getId());
534 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
535 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $prtt);
536 $this->
ctrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", $this->requested_ref_id);
537 $this->
ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromTemplate");
540 $this->createPortfolioObject();
545 $form->setValuesByPost();
546 $this->createPortfolioTemplateObject($form);
555 if (!$this->submission->canSubmit()) {
556 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
557 $this->returnToParentObject();
561 $portfolio->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
562 $portfolio->create();
564 $this->submission->deleteAllFiles();
565 $this->handleRemovedUpload();
567 $this->submission->addResourceObject($portfolio->getId());
569 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_created"),
true);
570 $this->returnToParentObject();
579 if (!$this->submission->canSubmit()) {
580 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
581 $this->returnToParentObject();
584 $prtf_id = $this->request->getResourceObjectId();
586 $this->submission->deleteAllFiles();
587 $this->handleRemovedUpload();
589 $this->submission->addResourceObject($prtf_id);
591 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_selected"),
true);
592 $this->
ctrl->setParameter($this,
"prtf_id", $prtf_id);
593 $this->
ctrl->redirect($this,
"askDirectSubmission");
596 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"));
597 $this->selectPortfolioObject();
605 $conf->setFormAction($this->
ctrl->getFormAction($this,
"unlinkPortfolio"));
606 $conf->setHeaderText($this->
lng->txt(
"exc_sure_unlink_portfolio",
"sure_unlink_portfolio"));
607 $conf->setConfirm($this->
lng->txt(
"confirm"),
"unlinkPortfolio");
608 $conf->setCancel($this->
lng->txt(
"cancel"),
"returnToParent");
610 $submission = $this->submission->getSelectedObject();
611 $port =
new ilObjPortfolio((
int) $submission[
"filetitle"],
false);
615 $tpl->setContent($conf->getHTML());
622 $user =
$DIC->user();
628 $this->submission->deleteResourceObject();
630 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_unlinked_from_assignment"),
true);
632 $this->
ctrl->redirect($this,
"returnToParent");
643 if (!$this->submission->canSubmit()) {
644 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
645 $this->returnToParentObject();
650 if ($this->request->getBlogId() > 0) {
651 $this->
ctrl->setParameter($this,
"blog_id", $this->request->getBlogId());
652 $txt = $this->
lng->txt(
"exc_direct_submit_blog");
654 $this->
ctrl->setParameter($this,
"prtf_id", $this->request->getPortfolioId());
655 $txt = $this->
lng->txt(
"exc_direct_submit_portfolio");
657 $conf->setFormAction($this->
ctrl->getFormAction($this,
"directSubmit"));
659 $conf->setHeaderText(
$txt);
660 $conf->setConfirm($this->
lng->txt(
"exc_direct_submit"),
"directSubmit");
661 $conf->setCancel($this->
lng->txt(
"exc_direct_no_submit"),
"returnToParent");
663 $tpl->setContent($conf->getHTML());
672 if (!$this->submission->canSubmit()) {
673 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
674 $this->returnToParentObject();
680 if ($this->request->getBlogId() > 0) {
681 $success = $this->submitBlog($this->request->getBlogId());
682 $this->
ctrl->setParameter($this,
"blog_id",
"");
685 elseif ($this->request->getPortfolioId() > 0) {
686 $success = $this->submitPortfolio($this->request->getPortfolioId());
687 $this->
ctrl->setParameter($this,
"prtf_id",
"");
691 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
693 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"msg_failed"),
true);
695 $this->
ctrl->redirectByClass([ilExerciseHandlerGUI::class, ilObjExerciseGUI::class, ilExSubmissionGUI::class, ilExSubmissionObjectGUI::class],
"returnToParent");
706 if (!$this->submission->canSubmit()) {
710 $blog_id = $a_blog_id;
713 if ($blog_gui->getObject()) {
714 $file = $blog_gui->buildExportFile();
715 $size = filesize($file);
717 $this->submission->deleteAllFiles();
720 "name" => $blog_id .
".zip",
724 $this->submission->uploadFile($meta,
true);
727 $file = $file = $blog_gui->buildExportFile(
false,
true);
728 $size = filesize($file);
731 "name" => $blog_id .
"print.zip",
735 $this->submission->uploadFile($meta,
true);
738 $this->handleNewUpload();
752 if (!$this->submission->canSubmit()) {
756 $prtf_id = $a_portfolio_id;
759 if ($prtf->getTitle()) {
762 $file = $port_export->exportHtml();
764 $size = filesize($file);
766 $this->submission->deleteAllFiles();
769 "name" => $prtf_id .
".zip",
773 $this->submission->uploadFile($meta,
true);
776 $port_export->setPrintVersion(
true);
777 $file = $port_export->exportHtml();
778 $size = filesize($file);
781 "name" => $prtf_id .
"print.zip",
785 $this->submission->uploadFile($meta,
true);
788 $this->handleNewUpload();
800 int $a_user_id =
null
812 $exc_id = $ass->getExerciseId();
816 $exc_ref_id = current($ref_ids);
819 return new self($exc, $sub);
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Exercise submission base gui.
Object-based submissions (ends up as static file)
renderResourceSelection(string $a_title, string $a_info, string $a_cmd, string $a_explorer_cmd, array $a_items=null)
setSelectedPortfolioObject()
__construct(ilObjExercise $a_exercise, ilExSubmission $a_submission)
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
askDirectSubmissionObject()
setSelectedPortfolioTemplateObject()
submitPortfolio(int $a_portfolio_id)
Submit portfolio for assignment.
createPortfolioFromAssignmentObject()
static getOverviewContentBlog(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
askUnlinkPortfolioObject()
initPortfolioTemplateForm(array $a_templates)
createPortfolioTemplateObject(ilPropertyFormGUI $a_form=null)
static initGUIForSubmit(int $a_ass_id, int $a_user_id=null)
renderWorkspaceExplorer(string $a_cmd)
submitBlog(int $a_blog_id)
Submit blog for assignment.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Portfolio view gui class.
static getAvailablePortfolioTemplates(string $a_permission="read")
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getPortfoliosOfUser(int $a_user_id)
Get portfolios of user.
static _lookupObjectId(int $ref_id)
static _getAllReferences(int $id)
get all reference ids for object ID
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
special template class to simplify handling of ITX/PEAR
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Explorer for selecting a personal workspace item.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists(getcwd() . '/ilias.ini.php'))
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(isset($_FILES['img_file']) &&is_array($_FILES['img_file'])) $panel
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc