24 if (!$this->submission->canView()) {
28 $class = $ilCtrl->getNextClass($this);
29 $cmd = $ilCtrl->getCmd();
33 $this->{$cmd .
"Object"}();
42 return self::getOverviewContentBlog($a_info, $a_submission);
45 return self::getOverviewContentPortfolio($a_info, $a_submission);
53 $lng = $DIC->language();
54 $ilCtrl = $DIC->ctrl();
59 if (!$wsp_tree->getRootId()) {
68 $blog_id = (int) $selected_blog[
"filetitle"];
69 $node = $wsp_tree->getNodeData($blog_id);
72 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id", $blog_id);
73 $blog_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilpersonalworkspacegui",
"ilobjbloggui"),
"");
74 $ilCtrl->setParameterByClass(
"ilobjbloggui",
"wsp_id",
"");
75 $files_str =
'<a href="' . $blog_link .
'">' .
76 $node[
"title"] .
'</a>';
80 elseif (substr($selected_blog[
"filename"], -1) ==
"/") {
88 $button->setCaption(
"exc_create_blog");
89 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createBlog"));
90 $buttons_str .= $button->render();
93 $blogs =
sizeof($wsp_tree->getObjectsFromType(
"blog"));
94 if ((!$valid_blog && $blogs)
95 || ($valid_blog && $blogs > 1)) {
97 $button->setCaption(
"exc_select_blog" . ($valid_blog ?
"_change" :
""));
98 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectBlog"));
99 $buttons_str .=
" " . $button->render();
104 if ($buttons_str !=
"") {
105 $files_str .=
"<p>" . $buttons_str .
"</p>";
113 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_blog[
"returned_id"]);
114 $dl_link = $ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
115 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
118 $button->setCaption(
"download");
119 $button->setUrl($dl_link);
121 $a_info->
addProperty(
$lng->txt(
"exc_files_returned"), $button->render());
129 $lng = $DIC->language();
130 $ilCtrl = $DIC->ctrl();
136 if ($selected_prtf) {
137 $portfolio_id = (int) $selected_prtf[
"filetitle"];
142 if ($portfolio->getTitle()) {
144 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id", $portfolio_id);
146 $ref_id = $_REQUEST[
'ref_id'];
147 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id", $ref_id);
149 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", (
int)
$_GET[
"ref_id"]);
151 $prtf_link = $ilCtrl->getLinkTargetByClass(array(
"ildashboardgui",
"ilportfoliorepositorygui",
"ilobjportfoliogui"),
"view");
152 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"prt_id",
"");
153 $ilCtrl->setParameterByClass(
"ilobjportfoliogui",
"ref_id",
"");
156 $files_str =
'<a href="' . $prtf_link .
157 '">' . $portfolio->getTitle() .
'</a>';
162 elseif (substr($selected_prtf[
"filename"], -1) ==
"/") {
170 $button->setCaption(
"exc_create_portfolio");
171 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"createPortfolioFromAssignment"));
173 $buttons_str .=
"" . $button->render();
178 if ((!$valid_prtf && $prtfs)
179 || ($valid_prtf && $prtfs > 1)) {
181 $button->setCaption(
"exc_select_portfolio" . ($valid_prtf ?
"_change" :
""));
182 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"selectPortfolio"));
183 $buttons_str .=
" " . $button->render();
187 $button->setCaption(
"exc_select_portfolio" . ($valid_prtf ?
"_unlink" :
""));
188 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionObjectGUI"),
"askUnlinkPortfolio"));
189 $buttons_str .=
" " . $button->render();
193 if ($buttons_str !=
"") {
194 $files_str .=
"<p>" . $buttons_str .
"</p>";
200 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered", $selected_prtf[
"returned_id"]);
201 $dl_link = $ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionFileGUI"),
"download");
202 $ilCtrl->setParameterByClass(
"ilExSubmissionFileGUI",
"delivered",
"");
205 $button->setCaption(
"download");
206 $button->setUrl($dl_link);
208 $a_info->
addProperty(
$lng->txt(
"exc_files_returned"), $button->render());
214 if (!$this->submission->canSubmit()) {
219 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"Modules/Exercise");
221 if (is_array($a_items)) {
222 $tpl->setCurrentBlock(
"item");
223 foreach ($a_items as $item_id => $item_title) {
224 $tpl->setVariable(
"ITEM_ID", $item_id);
225 $tpl->setVariable(
"ITEM_TITLE", $item_title);
226 $tpl->parseCurrentBlock();
228 $tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
229 $tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt(
"save"));
230 $tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
231 $tpl->setVariable(
"CMD_SUBMIT", $a_cmd);
232 $tpl->setVariable(
"CMD_CANCEL",
"returnToParent");
234 } elseif ($a_explorer_cmd) {
241 $title = $this->lng->txt($a_title) .
": " . $this->assignment->getTitle();
245 $panel->setHeading($title);
247 $this->tpl->setContent(
$panel->getHTML());
261 "exc_create_blog_select_info",
273 "exc_select_blog_info",
281 if (!$this->submission->canSubmit()) {
286 if (!
$_GET[
"sel_wsp_obj"]) {
291 $parent_node =
$_GET[
"sel_wsp_obj"];
294 $blog->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
299 $node_id = $tree->
insertObject($parent_node, $blog->getId());
302 $access_handler->setPermissions($parent_node, $node_id);
304 $this->submission->deleteAllFiles();
307 $this->submission->addResourceObject($node_id);
309 ilUtil::sendSuccess($this->lng->txt(
"exc_blog_created"),
true);
315 if (!$this->submission->canSubmit()) {
320 if (
$_GET[
"sel_wsp_obj"]) {
323 if ($node && $node[
"type"] ==
"blog") {
324 $this->submission->deleteAllFiles();
327 $this->submission->addResourceObject($node[
"wsp_id"]);
329 ilUtil::sendSuccess($this->lng->txt(
"exc_blog_selected"),
true);
330 $this->ctrl->setParameter($this,
"blog_id", $node[
"wsp_id"]);
331 $this->ctrl->redirect($this,
"askDirectSubmission");
347 $exp2 =
new ilWorkspaceExplorerGUI($this->submission->getUserId(), $this, $a_cmd, $this,
"setSelectedBlog");
349 $exp2->setSelectableTypes(array(
"blog"));
355 $exp2->setSelectableTypes(array(
"wsrt",
"wfld"));
358 if (!$exp2->handleCommand()) {
359 return $exp2->getHTML();
376 foreach ($portfolios as $portfolio) {
377 $items[$portfolio[
"id"]] = $portfolio[
"title"];
382 "exc_select_portfolio",
383 "exc_select_portfolio_info",
384 "setSelectedPortfolio",
393 $form->setTitle($this->lng->txt(
"exc_create_portfolio") .
": " . $this->assignment->getTitle());
394 $form->setFormAction($this->ctrl->getFormAction($this,
"setSelectedPortfolioTemplate"));
398 $prtt->addOption(
new ilRadioOption($this->lng->txt(
"exc_create_portfolio_no_template"), -1));
399 foreach ($a_templates as $id => $title) {
400 $prtt->addOption(
new ilRadioOption(
'"' . $title .
'"', $id));
403 $form->addItem($prtt);
405 $form->addCommandButton(
"setSelectedPortfolioTemplate", $this->lng->txt(
"save"));
406 $form->addCommandButton(
"returnToParent", $this->lng->txt(
"cancel"));
415 $ctrl = $DIC->ctrl();
420 $template_id = $this->assignment->getPortfolioTemplateId();
425 if (count($templates) > 0 && $template_object_id == 0) {
430 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
431 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->exercise->getRefId());
432 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->assignment->getId());
433 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
435 if ($template_object_id > 0) {
436 $ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $template_object_id);
438 $ctrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", (
int)
$_GET[
"ref_id"]);
439 $ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromAssignment");
444 if (!$this->submission->canSubmit()) {
450 if (!
sizeof($templates)) {
458 $this->tpl->setContent($a_form->getHTML());
463 if (!$this->submission->canSubmit()) {
469 if (!
sizeof($templates)) {
470 $this->ctrl->redirect($this,
"returnToParent");
474 if ($form->checkInput()) {
475 $prtt = $form->getInput(
"prtt");
476 if ($prtt > 0 && array_key_exists($prtt, $templates)) {
477 $title = $this->exercise->getTitle() .
" - " . $this->assignment->getTitle();
478 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->exercise->getRefId());
479 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->assignment->getId());
480 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
481 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $prtt);
482 $this->ctrl->setParameterByClass(
"ilobjportfoliogui",
"exc_back_ref_id", (
int)
$_GET[
"ref_id"]);
483 $this->ctrl->redirectByClass(array(
"ildashboardgui",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromTemplate");
490 $form->setValuesByPost();
496 if (!$this->submission->canSubmit()) {
502 $portfolio->setTitle($this->exercise->getTitle() .
" - " . $this->assignment->getTitle());
503 $portfolio->create();
505 $this->submission->deleteAllFiles();
508 $this->submission->addResourceObject($portfolio->getId());
510 ilUtil::sendSuccess($this->lng->txt(
"exc_portfolio_created"),
true);
516 if (!$this->submission->canSubmit()) {
522 $this->submission->deleteAllFiles();
525 $this->submission->addResourceObject(
$_POST[
"item"]);
527 ilUtil::sendSuccess($this->lng->txt(
"exc_portfolio_selected"),
true);
528 $this->ctrl->setParameter($this,
"prtf_id",
$_POST[
"item"]);
529 $this->ctrl->redirect($this,
"askDirectSubmission");
541 $conf->setFormAction($this->ctrl->getFormAction($this,
"unlinkPortfolio"));
542 $conf->setHeaderText($this->lng->txt(
"exc_sure_unlink_portfolio",
"sure_unlink_portfolio"));
543 $conf->setConfirm($this->lng->txt(
"confirm"),
"unlinkPortfolio");
544 $conf->setCancel($this->lng->txt(
"cancel"),
"returnToParent");
546 $submission = $this->submission->getSelectedObject();
551 $tpl->setContent($conf->getHTML());
558 $user = $DIC->user();
560 $portfolio = $this->submission->getSelectedObject();
561 $port_id = $portfolio[
"returned_id"];
566 ilUtil::sendSuccess($this->lng->txt(
"exc_portfolio_unlinked_from_assignment"),
true);
568 $this->ctrl->redirect($this,
"returnToParent");
579 if (!$this->submission->canSubmit()) {
586 if ($_REQUEST[
"blog_id"]) {
587 $this->ctrl->setParameter($this,
"blog_id", $_REQUEST[
"blog_id"]);
588 $txt = $this->lng->txt(
"exc_direct_submit_blog");
590 $this->ctrl->setParameter($this,
"prtf_id", $_REQUEST[
"prtf_id"]);
591 $txt = $this->lng->txt(
"exc_direct_submit_portfolio");
593 $conf->setFormAction($this->ctrl->getFormAction($this,
"directSubmit"));
595 $conf->setHeaderText(
$txt);
596 $conf->setConfirm($this->lng->txt(
"exc_direct_submit"),
"directSubmit");
597 $conf->setCancel($this->lng->txt(
"exc_direct_no_submit"),
"returnToParent");
599 $tpl->setContent($conf->getHTML());
604 if (!$this->submission->canSubmit()) {
612 if ($_REQUEST[
"blog_id"]) {
614 $this->ctrl->setParameter($this,
"blog_id",
"");
617 elseif ($_REQUEST[
"prtf_id"]) {
619 $this->ctrl->setParameter($this,
"prtf_id",
"");
623 ilUtil::sendSuccess($this->lng->txt(
"settings_saved"),
true);
627 $this->ctrl->redirect($this,
"returnToParent");
638 if (!$this->submission->canSubmit()) {
642 $blog_id = $a_blog_id;
645 if ($blog_gui->object) {
646 $file = $blog_gui->buildExportFile();
647 $size = filesize($file);
649 $this->submission->deleteAllFiles();
656 $this->submission->uploadFile($meta,
true);
673 if (!$this->submission->canSubmit()) {
677 $prtf_id = $a_portfolio_id;
680 if ($prtf->getTitle()) {
682 $port_export = new \ILIAS\Portfolio\Export\PortfolioHtmlExport($port_gui);
683 $file = $port_export->exportHtml();
685 $size = filesize($file);
687 $this->submission->deleteAllFiles();
694 $this->submission->uploadFile($meta,
true);
715 $exc_id = $ass->getExerciseId();
721 return new self($exc, $sub);
This class represents an option in a radio group.
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
askDirectSubmissionObject()
submitBlog($a_blog_id)
Submit blog for assignment.
createTreeForUser($a_user_id)
Create personal workspace tree for user.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
if(isset($_FILES['img_file']) &&is_array($_FILES['img_file'])) $panel
renderWorkspaceExplorer($a_cmd)
static getPortfoliosOfUser($a_user_id)
Get views of user.
Exercise submission base gui.
setSelectedPortfolioObject()
askUnlinkPortfolioObject()
Access handler for personal workspace.
createPortfolioTemplateObject(ilPropertyFormGUI $a_form=null)
static getOverviewContentPortfolio(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
submitPortfolio($a_portfolio_id)
Submit portfolio for assignment.
static _getAllReferences($a_id)
get all reference ids of object
Tree handler for personal workspace.
setTypeWhiteList($a_val)
Set type white list.
static _lookupObjectId($a_ref_id)
lookup object id
static initGUIForSubmit($a_ass_id, $a_user_id=null)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getOverviewContentBlog(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
Portfolio view gui class.
handleNewUpload($a_no_notifications=false)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
getNodeData($a_node_id, $a_tree_pk=null)
get all information of a node.
Explorer for selecting a personal workspace item.
static getAvailablePortfolioTemplates($a_permission="read")
insertObject($a_parent_node_id, $a_object_id)
Add object to tree.
setSelectedPortfolioTemplateObject()
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getInstance()
Get instance.
addProperty($a_name, $a_value, $a_link="")
add a property to current section
deleteResourceObject($a_returned_id)
Remove personal resource to assigment.
createPortfolioFromAssignmentObject()
Exercise submission //TODO: This class has to much static methods related to delivered "files"...
initPortfolioTemplateForm(array $a_templates)
Object-based submissions (ends up as static file)
renderResourceSelection($a_title, $a_info, $a_cmd, $a_explorer_cmd, array $a_items=null)
executeCommand()
Execute command.
Confirmation screen class.