5 require_once
"./Services/Object/classes/class.ilObjectGUI.php";
34 $this->
ilObjectGUI($a_data,$a_id,$a_call_by_reference,
false);
36 $lng->loadLanguageModule(
"exercise");
37 $lng->loadLanguageModule(
"exc");
38 $this->ctrl->saveParameter($this,
"ass_id");
42 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
51 $next_class = $this->ctrl->getNextClass($this);
52 $cmd = $this->ctrl->getCmd();
58 case "ilinfoscreengui":
59 $ilTabs->activateTab(
"info");
63 case 'ilpermissiongui':
64 $ilTabs->activateTab(
"permissions");
65 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
67 $ret =& $this->ctrl->forwardCommand($perm_gui);
70 case "illearningprogressgui":
71 $ilTabs->activateTab(
"learning_progress");
72 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
75 $this->object->getRefId(),
76 $_GET[
'user_id'] ?
$_GET[
'user_id'] : $ilUser->getId());
77 $this->ctrl->forwardCommand($new_gui);
78 $this->tabs_gui->setTabActive(
'learning_progress');
81 case 'ilobjectcopygui':
82 $ilCtrl->saveParameter($this,
'new_type');
83 $ilCtrl->setReturnByClass(get_class($this),
'create');
85 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
88 $this->ctrl->forwardCommand($cp);
92 $ilTabs->activateTab(
"export");
93 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
95 $exp_gui->addFormat(
"xml");
96 $ret = $this->ctrl->forwardCommand($exp_gui);
100 case 'ilshoppurchasegui':
101 include_once
'./Services/Payment/classes/class.ilShopPurchaseGUI.php';
104 $this->ctrl->forwardCommand($sp);
107 case "ilcommonactiondispatchergui":
108 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
110 $this->ctrl->forwardCommand($gui);
113 case "ilcertificategui":
115 $this->tabs_gui->activateTab(
"settings");
116 $this->tabs_gui->activateSubTab(
"certificate");
117 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
118 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
120 $this->ctrl->forwardCommand($output_gui);
123 case "ilexassignmenteditorgui":
125 $ilTabs->activateTab(
"content");
127 include_once(
"./Modules/Exercise/classes/class.ilExAssignmentEditorGUI.php");
128 $ass_gui =
new ilExAssignmentEditorGUI($this->object->getId(), $this->
object->isCompletionBySubmissionEnabled(), $this->ass);
129 $this->ctrl->forwardCommand($ass_gui);
132 case "ilexsubmissiongui":
134 $ilTabs->activateTab(
"content");
136 $this->ctrl->setReturn($this,
"showOverview");
137 include_once(
"./Modules/Exercise/classes/class.ilExSubmissionGUI.php");
139 $this->ctrl->forwardCommand($sub_gui);
142 case "ilexercisemanagementgui":
144 $ilTabs->activateTab(
"grades");
145 include_once(
"./Modules/Exercise/classes/class.ilExerciseManagementGUI.php");
147 $this->ctrl->forwardCommand($mgmt_gui);
150 case "ilexccriteriacataloguegui":
152 $ilTabs->activateTab(
"settings");
154 $ilTabs->activateSubTab(
"crit");
155 include_once(
"./Modules/Exercise/classes/class.ilExcCriteriaCatalogueGUI.php");
157 $this->ctrl->forwardCommand($crit_gui);
187 $a_new_object->saveData();
191 $ilCtrl->setParameterByClass(
"ilExAssignmentEditorGUI",
"ref_id", $a_new_object->
getRefId());
192 $ilCtrl->redirectByClass(
"ilExAssignmentEditorGUI",
"addAssignment");
202 $ilCtrl->redirectByClass(
"ilExAssignmentEditorGUI",
"listAssignments");
210 $a_form->
setTitle($this->lng->txt(
"exc_edit_exercise"));
213 $section->setTitle($this->lng->txt(
'exc_passing_exc'));
219 $op1 =
new ilRadioOption($this->lng->txt(
"exc_pass_all"),
"all",
220 $this->lng->txt(
"exc_pass_all_info"));
221 $radg->addOption($op1);
222 $op2 =
new ilRadioOption($this->lng->txt(
"exc_pass_minimum_nr"),
"nr",
223 $this->lng->txt(
"exc_pass_minimum_nr_info"));
224 $radg->addOption($op2);
229 $ni->setMaxLength(4);
230 $ni->setRequired(
true);
231 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
233 $min = max($mand, 1);
234 $ni->setMinValue($min,
true);
235 $ni->setInfo($this->lng->txt(
"exc_min_nr_info"));
236 $op2->addSubItem($ni);
241 $subcompl =
new ilRadioGroupInputGUI($this->lng->txt(
"exc_passed_status_determination"),
"completion_by_submission");
242 $op1 =
new ilRadioOption($this->lng->txt(
"exc_completion_by_tutor"), 0,
"");
243 $subcompl->addOption($op1);
244 $op2 =
new ilRadioOption($this->lng->txt(
"exc_completion_by_submission"), 1,$this->lng->txt(
"exc_completion_by_submission_info"));
245 $subcompl->addOption($op2);
254 $section->setTitle($this->lng->txt(
'exc_publishing'));
258 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"exc_show_submissions"),
"show_submissions");
259 $cb->
setInfo($this->lng->txt(
"exc_show_submissions_info"));
263 $section->setTitle($this->lng->txt(
'exc_notification'));
267 $cbox =
new ilCheckboxInputGUI($this->lng->txt(
"exc_submission_notification"),
"notification");
268 $cbox->
setInfo($this->lng->txt(
"exc_submission_notification_info"));
279 $a_values[
"desc"] = $this->
object->getLongDescription();
280 $a_values[
"show_submissions"] = $this->
object->getShowSubmissions();
281 $a_values[
"pass_mode"] = $this->
object->getPassMode();
282 if ($a_values[
"pass_mode"] ==
"nr")
284 $a_values[
"pass_nr"] = $this->
object->getPassNr();
287 include_once
"./Services/Notification/classes/class.ilNotification.php";
290 $this->
object->getId());
292 $a_values[
'completion_by_submission'] = (int) $this->object->isCompletionBySubmissionEnabled();
298 $this->
object->setShowSubmissions($a_form->
getInput(
"show_submissions"));
299 $this->
object->setPassMode($a_form->
getInput(
"pass_mode"));
300 if ($this->object->getPassMode() ==
"nr")
302 $this->
object->setPassNr($a_form->
getInput(
"pass_nr"));
305 $this->
object->setCompletionBySubmission($a_form->
getInput(
'completion_by_submission') == 1 ? true :
false);
307 include_once
"./Services/Notification/classes/class.ilNotification.php";
309 $ilUser->getId(), $this->
object->getId(),
310 (bool)$a_form->
getInput(
"notification"));
322 $ilTabs->addSubTab(
"content", $lng->txt(
"view"),
323 $ilCtrl->getLinkTarget($this,
"showOverview"));
324 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
326 $ilTabs->addSubTab(
"list_assignments", $lng->txt(
"edit"),
327 $ilCtrl->getLinkTargetByClass(
"ilExAssignmentEditorGUI",
"listAssignments"));
329 $ilTabs->activateSubTab($a_activate);
341 $ilHelp->setScreenIdComponent(
"exc");
343 if ($ilAccess->checkAccess(
"read",
"", $this->object->getRefId()))
345 $tabs_gui->addTab(
"content",
346 $lng->txt(
"exc_assignments"),
347 $this->ctrl->getLinkTarget($this,
"showOverview"));
350 $next_class = strtolower($this->ctrl->getNextClass());
351 if ($ilAccess->checkAccess(
"visible",
"", $this->object->getRefId()))
353 $tabs_gui->addTab(
"info",
354 $lng->txt(
"info_short"),
355 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary"));
359 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
365 $tabs_gui->addTab(
"settings",
366 $lng->txt(
"settings"),
367 $this->ctrl->getLinkTarget($this,
'edit'));
369 $tabs_gui->addTab(
"grades",
370 $lng->txt(
"exc_submissions_and_grades"),
371 $this->ctrl->getLinkTargetByClass(
"ilexercisemanagementgui",
"members"));
375 $save_sort_order =
$_GET[
"sort_order"];
376 $save_sort_by =
$_GET[
"sort_by"];
377 $save_offset =
$_GET[
"offset"];
380 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
383 $tabs_gui->addTab(
'learning_progress',
384 $lng->txt(
'learning_progress'),
385 $this->ctrl->getLinkTargetByClass(array(
'ilobjexercisegui',
'illearningprogressgui'),
''));
388 $_GET[
"sort_order"] = $save_sort_order;
389 $_GET[
"sort_by"] = $save_sort_by;
390 $_GET[
"offset"] = $save_offset;
393 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
395 $tabs_gui->addTab(
"export",
397 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""));
402 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->ref_id))
404 $tabs_gui->addTab(
'permissions',
405 $lng->txt(
"perm_settings"),
406 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"));
417 $this->ctrl->setCmd(
"showSummary");
418 $this->ctrl->setCmdClass(
"ilinfoscreengui");
429 $ilTabs->activateTab(
"info");
433 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
436 $info->enablePrivateNotes();
439 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]))
441 $info->enableNewsEditing();
442 $info->setBlockProperty(
"news",
"settings",
true);
449 $info->addSection($this->lng->txt(
"exc_overview"));
450 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
462 $info->addProperty($lng->txt(
"exc_assignments"), $cnt);
463 $info->addProperty($lng->txt(
"exc_mandatory"), $mcnt);
464 if ($this->object->getPassMode() !=
"nr")
466 $info->addProperty($lng->txt(
"exc_pass_mode"),
467 $lng->txt(
"exc_msg_all_mandatory_ass"));
471 $info->addProperty($lng->txt(
"exc_pass_mode"),
472 sprintf($lng->txt(
"exc_msg_min_number_ass"), $this->
object->getPassNr()));
476 include_once(
"Services/Tracking/classes/class.ilLPMarks.php");
477 if ($ilAccess->checkAccess(
"read",
"", $this->ref_id))
482 $st = $this->
object->determinStatusOfUser($ilUser->getId());
483 $status = $st[
"overall_status"];
484 if ($lpcomment !=
"" || $mark !=
"" || $status !=
"notgraded")
486 $info->addSection($this->lng->txt(
"exc_feedback_from_tutor"));
487 if ($lpcomment !=
"")
489 $info->addProperty($this->lng->txt(
"exc_comment"),
494 $info->addProperty($this->lng->txt(
"exc_mark"),
504 if ($status !=
"notgraded")
506 $img =
'<img src="'.ilUtil::getImagePath(
"scorm/".$status.
".svg").
'" '.
507 ' alt="'.$lng->txt(
"exc_".$status).
'" title="'.$lng->txt(
"exc_".$status).
511 if ($st[
"failed_a_mandatory"])
513 $add =
" (".$lng->txt(
"exc_msg_failed_mandatory").
")";
515 else if ($status ==
"failed")
517 $add =
" (".$lng->txt(
"exc_msg_missed_minimum_number").
")";
519 $info->addProperty($this->lng->txt(
"status"),
520 $img.
" ".$this->lng->txt(
"exc_".$status).$add);
526 $this->ctrl->forwardCommand(
$info);
532 $this->tabs_gui->activateSubTab(
"edit");
533 return parent::editObject();
538 $this->tabs_gui->addSubTab(
"edit",
539 $this->lng->txt(
"general_settings"),
540 $this->ctrl->getLinkTarget($this,
"edit"));
542 $this->tabs_gui->addSubTab(
"crit",
543 $this->lng->txt(
"exc_criteria_catalogues"),
544 $this->ctrl->getLinkTargetByClass(
"ilexccriteriacataloguegui",
""));
546 include_once
"Services/Certificate/classes/class.ilCertificate.php";
549 $this->tabs_gui->addSubTab(
"certificate",
550 $this->lng->txt(
"certificate"),
551 $this->ctrl->getLinkTarget($this,
"certificate"));
560 public static function _goto($a_target, $a_raw)
565 $parts = explode(
"_", $a_raw);
566 if(
sizeof($parts) == 2)
568 $ass_id = (int)$parts[1];
571 if ($ilAccess->checkAccess(
"read",
"", $a_target))
575 $_GET[
"ass_id_goto"] = $ass_id;
577 $_GET[
"ref_id"] = $a_target;
578 $_GET[
"cmd"] =
"showOverview";
579 $_GET[
"baseClass"] =
"ilExerciseHandlerGUI";
580 include(
"ilias.php");
583 else if ($ilAccess->checkAccess(
"visible",
"", $a_target))
585 $_GET[
"ref_id"] = $a_target;
586 $_GET[
"cmd"] =
"infoScreen";
587 $_GET[
"baseClass"] =
"ilExerciseHandlerGUI";
588 include(
"ilias.php");
591 else if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
598 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
608 if (is_object($this->
object))
611 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"showOverview"),
"",
$_GET[
"ref_id"]);
629 include_once(
"./Services/Tracking/classes/class.ilLearningProgress.php");
631 $this->
object->getRefId(),
'exc');
633 $ilTabs->activateTab(
"content");
637 if($this->object->hasUserCertificate($ilUser->getId()))
639 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
640 include_once
"./Services/Certificate/classes/class.ilCertificate.php";
644 $ilToolbar->addButton($this->lng->txt(
"certificate"),
645 $this->ctrl->getLinkTarget($this,
"outCertificate"));
649 include_once(
"./Modules/Exercise/classes/class.ilExAssignmentGUI.php");
652 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
653 include_once(
"./Services/Accordion/classes/class.ilAccordionGUI.php");
655 $acc->setId(
"exc_ow_".$this->object->getId());
658 foreach ($ass_data as $ass)
662 if(isset(
$_GET[
"ass_id_goto"]) &&
663 (int)
$_GET[
"ass_id_goto"] == $ass->getId())
668 $acc->addItem($ass_gui->getOverviewHeader($ass),
669 $ass_gui->getOverviewBody($ass),
673 if (count($ass_data) < 2)
675 $acc->setBehaviour(
"FirstOpen");
679 $acc->setUseSessionStorage(
true);
682 $tpl->setContent($acc->getHTML());
688 $this->tabs_gui->activateTab(
"settings");
689 $this->tabs_gui->activateSubTab(
"certificate");
691 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
692 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
694 $output_gui->certificateEditor();
701 if($this->object->hasUserCertificate($ilUser->getId()))
707 include_once
"./Services/Certificate/classes/class.ilCertificate.php";
708 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
710 $certificate->outCertificate(array(
"user_id" => $ilUser->getId()));
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
Class ilExAssignmentEditorGUI.
This class represents an option in a radio group.
Class ilExcCriteriaCatalogueGUI.
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
GUI class for the workflow of copying objects.
ilObjExerciseGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor public.
countMandatory($a_ex_id)
Order assignments by deadline date.
_lookupMark($a_usr_id, $a_obj_id)
Class ilObject Basic functions for all objects.
updateCustom(ilPropertyFormGUI $a_form)
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
_isComplete($adapter)
Checks the status of the certificate.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
static _lookupTitle($a_id)
lookup object title
getEditFormCustomValues(array &$a_values)
Get values for properties form.
static _goto($a_target, $a_raw)
redirect script
addContentSubTabs($a_activate)
Add subtabs of content view.
showOverviewObject()
Show overview of assignments.
GUI class for exercise assignments.
if(@file_exists(dirname(__FILE__).'/lang/eng.php')) $certificate
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
static getInstancesByExercise($a_exc_id)
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
GUI class to create PDF certificates.
const TYPE_EXERCISE_SUBMISSION
prepareOutput()
prepare output
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Class ilExerciseManagementGUI.
afterSave(ilObject $a_new_object)
_lookupComment($a_usr_id, $a_obj_id)
const LP_CONTEXT_REPOSITORY
getTabs($tabs_gui)
adds tabs to tab gui object
getRefId()
get reference id public
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
initEditCustomForm(ilPropertyFormGUI $a_form)
Init properties form.
Accordion user interface class.
addHeaderAction()
Add header action menu.
infoScreen()
show information screen
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Exercise certificate adapter.
addLocatorItems()
Add locator item.