43 $this->user_id = $DIC->user()->getId();
46 $this->selected_wsp_obj_id = $this->request->getSelectedWspObjId();
53 if (!$this->submission->canView()) {
57 $class = $ilCtrl->getNextClass($this);
58 $cmd = $ilCtrl->getCmd();
62 $this->{$cmd .
"Object"}();
73 self::getOverviewContentBlog($a_info, $a_submission);
77 self::getOverviewContentPortfolio($a_info, $a_submission);
88 $lng = $DIC->language();
89 $ilCtrl = $DIC->ctrl();
90 $gui = $DIC->exercise()->internal()->gui();
95 if (!$wsp_tree->getRootId()) {
103 if ($selected_blog) {
105 $node = $wsp_tree->getNodeData($blog_id);
106 if ($node[
"title"]) {
108 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id", $blog_id);
109 $blog_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilpersonalworkspacegui",
"ilobjbloggui"),
"");
110 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id",
"");
111 $files_str =
'<a href="' . $blog_link .
'">' .
112 $node[
"title"] .
'</a>';
116 elseif (substr($selected_blog[
"filename"], -1) ==
"/") {
123 $button =
$gui->button(
125 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createBlog")
127 $buttons_str .= $button->render();
130 $blogs = count($wsp_tree->getObjectsFromType(
"blog"));
131 if ((!$valid_blog && $blogs)
132 || ($valid_blog && $blogs > 1)) {
134 $lng->
txt(
"exc_select_blog" . ($valid_blog ?
"_change" :
"")),
135 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectBlog")
137 $buttons_str .=
" " . $link->render();
142 if ($buttons_str !=
"") {
143 $files_str .=
"<p>" . $buttons_str .
"</p>";
151 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_blog[
"returned_id"]);
152 $dl_link = $ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
153 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
155 $button =
$gui->button(
168 $back_ref_id = $DIC->http()->wrapper()->query()->retrieve(
170 $DIC->refinery()->kindlyTo()->int()
173 $request = $DIC->exercise()->internal()->gui()->request();
174 $gui = $DIC->exercise()->internal()->gui();
177 $lng = $DIC->language();
178 $ilCtrl = $DIC->ctrl();
184 if ($selected_prtf) {
190 if ($portfolio->getTitle()) {
192 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id", $portfolio_id);
195 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id",
$ref_id);
196 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", $back_ref_id);
198 $prtf_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilportfoliorepositorygui",
"ilobjportfoliogui"),
"view");
199 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id",
"");
200 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id",
"");
203 $files_str =
'<a href="' . $prtf_link .
204 '">' . $portfolio->getTitle() .
'</a>';
209 elseif (substr($selected_prtf[
"filename"], -1) ==
"/") {
216 $button =
$gui->button(
217 $lng->
txt(
"exc_create_portfolio"),
218 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createPortfolioFromAssignment")
221 $buttons_str .= $button->render();
226 if ((!$valid_prtf && $prtfs)
227 || ($valid_prtf && $prtfs > 1)) {
229 $lng->
txt(
"exc_select_portfolio" . ($valid_prtf ?
"_change" :
"")),
230 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectPortfolio")
233 $buttons_str .=
" " . $link->render();
237 $lng->
txt(
"exc_select_portfolio_unlink"),
238 $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"askUnlinkPortfolio")
240 $buttons_str .=
" " . $link->render();
244 if ($buttons_str !=
"") {
245 $files_str .=
"<p>" . $buttons_str .
"</p>";
251 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_prtf[
"returned_id"]);
252 $dl_link = $ilCtrl->getLinkTargetByClass(array(ilAssignmentPresentationGUI::class,
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
253 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
255 $button =
$gui->button(
268 string $a_explorer_cmd,
269 ?array $a_items =
null 271 if (!$this->submission->canSubmit()) {
272 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
277 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"components/ILIAS/Exercise");
279 if (is_array($a_items)) {
281 foreach ($a_items as $item_id => $item_title) {
292 } elseif ($a_explorer_cmd) {
297 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt($a_info));
299 $title = $this->
lng->txt($a_title) .
": " . $this->assignment->getTitle();
301 $f = $this->gui->ui()->factory();
302 $r = $this->gui->ui()->renderer();
303 $p =
$f->panel()->standard(
305 $f->legacy()->content($html)
308 $this->tpl->setContent(
$r->render($p));
322 "exc_create_blog_select_info",
334 "exc_select_blog_info",
346 if (!$this->submission->canSubmit()) {
347 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
351 if ($this->selected_wsp_obj_id == 0) {
352 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"));
360 $blog->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
365 $node_id = $tree->
insertObject($parent_node, $blog->getId());
368 $access_handler->setPermissions($parent_node, $node_id);
370 $this->submission->deleteAllFiles();
373 $this->submission->addResourceObject($node_id);
375 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_blog_created"),
true);
376 $this->
ctrl->setParameterByClass(ilObjBlogGUI::class,
"wsp_id", $node_id);
377 $this->
ctrl->redirectByClass(
378 [ilDashboardGUI::class, ilPersonalWorkspaceGUI::class, ilObjBlogGUI::class],
389 if (!$this->submission->canSubmit()) {
390 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
394 if ($this->selected_wsp_obj_id > 0) {
396 $node = $tree->
getNodeData($this->selected_wsp_obj_id);
397 if ($node && $node[
"type"] ==
"blog") {
398 $this->submission->deleteAllFiles();
401 $this->submission->addResourceObject($node[
"wsp_id"]);
403 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_blog_selected"),
true);
404 $this->
ctrl->setParameter($this,
"blog_id", $node[
"wsp_id"]);
405 $this->
ctrl->redirect($this,
"askDirectSubmission");
418 $exp2 =
new ilWorkspaceExplorerGUI($this->submission->getUserId(), $this, $a_cmd, $this,
"setSelectedBlog");
420 $exp2->setSelectableTypes(array(
"blog"));
426 $exp2->setSelectableTypes(array(
"wsrt",
"wfld"));
429 if (!$exp2->handleCommand()) {
430 return $exp2->getHTML();
446 foreach ($portfolios as $portfolio) {
447 $items[$portfolio[
"id"]] = $portfolio[
"title"];
451 "exc_select_portfolio",
452 "exc_select_portfolio_info",
453 "setSelectedPortfolio",
463 $form->setTitle($this->
lng->txt(
"exc_create_portfolio") .
": " . $this->assignment->getTitle());
464 $form->setFormAction($this->
ctrl->getFormAction($this,
"setSelectedPortfolioTemplate"));
468 $prtt->addOption(
new ilRadioOption($this->
lng->txt(
"exc_create_portfolio_no_template"), -1));
469 foreach ($a_templates as
$id => $title) {
473 $form->addItem($prtt);
475 $form->addCommandButton(
"setSelectedPortfolioTemplate", $this->
lng->txt(
"save"));
476 $form->addCommandButton(
"returnToParent", $this->
lng->txt(
"cancel"));
485 $ctrl = $DIC->ctrl();
490 $template_id = $this->assignment->getPortfolioTemplateId();
495 if ($templates !== [] && $template_object_id == 0) {
500 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
505 if ($template_object_id > 0) {
509 $ctrl->
redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromAssignment");
515 if (!$this->submission->canSubmit()) {
516 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
521 if ($templates === []) {
525 if ($a_form ===
null) {
529 $this->tpl->setContent($a_form->getHTML());
538 if (!$this->submission->canSubmit()) {
539 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
544 if ($templates === []) {
545 $this->
ctrl->redirect($this,
"returnToParent");
549 if ($form->checkInput()) {
550 $prtt = $form->getInput(
"prtt");
551 if ($prtt > 0 && array_key_exists($prtt, $templates)) {
552 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
553 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->exercise->getRefId());
554 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->assignment->getId());
555 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
556 $this->
ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $prtt);
557 $this->
ctrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", $this->requested_ref_id);
558 $this->
ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromTemplate");
566 $form->setValuesByPost();
576 if (!$this->submission->canSubmit()) {
577 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
582 $portfolio->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
583 $portfolio->create();
585 $this->submission->deleteAllFiles();
588 $this->submission->addResourceObject($portfolio->getId());
590 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_created"),
true);
591 $this->
ctrl->setParameterByClass(ilObjPortfolioGUI::class,
"prt_id", $portfolio->getId());
592 $this->
ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"view");
601 if (!$this->submission->canSubmit()) {
602 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
606 $prtf_id = $this->request->getResourceObjectId();
608 $this->submission->deleteAllFiles();
611 $this->submission->addResourceObject($prtf_id);
613 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_selected"),
true);
614 $this->
ctrl->setParameter($this,
"prtf_id", $prtf_id);
615 $this->
ctrl->redirect($this,
"askDirectSubmission");
618 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"));
627 $conf->setFormAction($this->
ctrl->getFormAction($this,
"unlinkPortfolio"));
628 $conf->setHeaderText($this->
lng->txt(
"exc_sure_unlink_portfolio",
"sure_unlink_portfolio"));
629 $conf->setConfirm($this->
lng->txt(
"confirm"),
"unlinkPortfolio");
630 $conf->setCancel($this->
lng->txt(
"cancel"),
"returnToParent");
644 $user = $DIC->user();
650 $this->submission->deleteResourceObject();
652 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_portfolio_unlinked_from_assignment"),
true);
654 $this->
ctrl->redirect($this,
"returnToParent");
662 $conf->setFormAction($this->
ctrl->getFormAction($this,
"unlinkBlog"));
663 $conf->setHeaderText($this->
lng->txt(
"exc_sure_unlink_blog"));
664 $conf->setConfirm($this->
lng->txt(
"confirm"),
"unlinkBlog");
665 $conf->setCancel($this->
lng->txt(
"cancel"),
"returnToParent");
670 $port =
new ilObjBlog($object_id,
false);
679 $this->submission->deleteResourceObject();
681 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_blog_unlinked_from_assignment"),
true);
683 $this->
ctrl->redirect($this,
"returnToParent");
694 if (!$this->submission->canSubmit()) {
701 if ($this->request->getBlogId() > 0) {
702 $this->
ctrl->setParameter($this,
"blog_id", $this->request->getBlogId());
703 $txt = $this->
lng->txt(
"exc_direct_submit_blog");
705 $this->
ctrl->setParameter($this,
"prtf_id", $this->request->getPortfolioId());
706 $txt = $this->
lng->txt(
"exc_direct_submit_portfolio");
708 $conf->setFormAction($this->
ctrl->getFormAction($this,
"directSubmit"));
710 $conf->setHeaderText(
$txt);
711 $conf->setConfirm($this->
lng->txt(
"exc_direct_submit"),
"directSubmit");
712 $conf->setCancel($this->
lng->txt(
"exc_direct_no_submit"),
"returnToParent");
723 if (!$this->submission->canSubmit()) {
724 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"exercise_time_over"),
true);
731 if ($this->request->getBlogId() > 0) {
732 $success = $this->
submitBlog($this->request->getBlogId());
733 $this->
ctrl->setParameter($this,
"blog_id",
"");
736 elseif ($this->request->getPortfolioId() > 0) {
738 $this->
ctrl->setParameter($this,
"prtf_id",
"");
742 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
744 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"msg_failed"),
true);
746 $this->
ctrl->redirectByClass([ilExerciseHandlerGUI::class, ilObjExerciseGUI::class, ilAssignmentPresentationGUI::class, ilExSubmissionGUI::class, ilExSubmissionObjectGUI::class],
"returnToParent");
757 if (!$this->submission->canSubmit()) {
761 $subm = $this->domain->submission($this->submission->getAssignment()->getId());
763 $blog_id = $a_blog_id;
766 if ($blog_gui->getObject()) {
767 $export = $blog_gui->buildExportFile();
768 $file = $export->getFilePath();
769 $size = filesize($file);
771 $this->submission->deleteAllFiles();
781 $export = $blog_gui->buildExportFile(
false,
true);
782 $file = $export->getFilePath();
783 $size = filesize($file);
788 $blog_id .
"print.zip" 807 if (!$this->submission->canSubmit()) {
811 $prtf_id = $a_portfolio_id;
812 $subm = $this->domain->submission($this->submission->getAssignment()->getId());
815 if ($prtf->getTitle()) {
818 $port_export->exportHtml();
820 $file = $port_export->getFilePath();
822 $size = filesize($file);
824 $this->submission->deleteAllFiles();
831 $port_export->delete();
835 $port_export->setPrintVersion(
true);
836 $port_export->exportHtml();
837 $file = $port_export->getFilePath();
838 $size = filesize($file);
844 $prtf_id .
"print.zip" 846 $file = $port_export->delete();
861 ?
int $a_user_id =
null 865 $ilUser = $DIC->user();
868 $a_user_id = $ilUser->getId();
873 $exc_id = $ass->getExerciseId();
877 $exc_ref_id = current($ref_ids);
880 return new self($exc, $sub);
setOnScreenMessage(string $type, string $a_txt, bool $a_keep=false)
Set a message to be displayed to the user.
handleNewUpload(bool $a_no_notifications=false)
This class represents an option in a radio group.
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
ILIAS Exercise InternalGUIService $gui
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
askDirectSubmissionObject()
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
__construct(ilObjExercise $a_exercise, ilExSubmission $a_submission)
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
setTypeWhiteList(array $a_val)
Set type white list.
static _getAllReferences(int $id)
get all reference ids for object ID
Exercise submission base gui.
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
setSelectedPortfolioObject()
askUnlinkPortfolioObject()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setContent(string $a_html)
Sets content for standard template.
setParameterByClass(string $a_class, string $a_parameter, $a_value)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
renderWorkspaceExplorer(string $a_cmd)
setVariable(string $variable, $value='')
Sets the given variable to the given value.
static getOverviewContentPortfolio(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
static getAvailablePortfolioTemplates(string $a_permission="read")
ilGlobalTemplateInterface $tpl
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
submitBlog(int $a_blog_id)
Submit blog for assignment.
renderResourceSelection(string $a_title, string $a_info, string $a_cmd, string $a_explorer_cmd, ?array $a_items=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static getOverviewContentBlog(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
ilObjPortfolioGUI: ilPortfolioPageGUI, ilPageObjectGUI ilObjPortfolioGUI: ilWorkspaceAccessGUI, ilCommentGUI, ilCommonActionDispatcherGUI ilObjPortfolioGUI: ilObjectContentStyleSettingsGUI, ilPortfolioExerciseGUI ilObjPortfolioGUI: ILIAS
ilObjBlogGUI: ilBlogPostingGUI, ilWorkspaceAccessGUI ilObjBlogGUI: ilInfoScreenGUI, ilNoteGUI, ilCommonActionDispatcherGUI ilObjBlogGUI: ilPermissionGUI, ilObjectCopyGUI, ilRepositorySearchGUI ilObjBlogGUI: ilExportGUI, ilObjectContentStyleSettingsGUI, ilBlogExerciseGUI, ilObjNotificationSettingsGUI ilObjBlogGUI: ilObjectMetaDataGUI ilObjBlogGUI: ILIAS ilObjBlogGUI: ILIAS
static initGUIForSubmit(int $a_ass_id, ?int $a_user_id=null)
static getPortfoliosOfUser(int $a_user_id)
Get portfolios of user.
Explorer for selecting a personal workspace item.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static _lookupObjectId(int $ref_id)
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
setSelectedPortfolioTemplateObject()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
lookupObjectId(int $a_node_id)
Get object id for node id.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
createPortfolioFromAssignmentObject()
Exercise submission //TODO: This class has many static methods related to delivered "files"...
createPortfolioTemplateObject(?ilPropertyFormGUI $a_form=null)
ilExSubmission $submission
submitPortfolio(int $a_portfolio_id)
Submit portfolio for assignment.
createTreeForUser(int $a_user_id)
Create personal workspace tree for user.
initPortfolioTemplateForm(array $a_templates)
insertObject(int $a_parent_node_id, int $a_object_id)
Add object to tree.
Object-based submissions (ends up as static file)