52 public function __construct($a_data,
int $a_id,
bool $a_call_by_reference)
56 $this->
lng = $DIC->language();
57 $this->
user = $DIC->user();
58 $this->
ctrl = $DIC->ctrl();
59 $this->
tabs = $DIC->tabs();
60 $this->
help = $DIC[
"ilHelp"];
61 $this->
locator = $DIC[
"ilLocator"];
62 $this->tpl =
$DIC[
"tpl"];
63 $this->
toolbar = $DIC->toolbar();
66 $this->
lng->loadLanguageModule(
'cert');
73 $this->
ctrl->saveParameter($this,
"ass_id");
75 $this->service =
$DIC->exercise()->internal();
76 $this->exercise_request =
$DIC->exercise()->internal()->gui()->request();
77 $this->exercise_ui =
$DIC->exercise()->internal()->gui();
78 $this->requested_ass_id = $this->exercise_request->getAssId();
81 $this->requested_ass_id
82 ) === $this->
object->getId()) {
83 $this->ass = $this->exercise_request->getAssignment();
84 } elseif ($this->requested_ass_id > 0) {
88 $this->lp_user_id = ($this->exercise_request->getUserId() > 0)
89 ?: $this->
user->getId();
90 $this->requested_sort_order = $this->exercise_request->getSortOrder();
91 $this->requested_sort_by = $this->exercise_request->getSortBy();
92 $this->requested_offset = $this->exercise_request->getOffset();
93 $this->requested_ref_id = $this->exercise_request->getRefId();
94 $this->requested_ass_id_goto = $this->exercise_request->getAssIdGoto();
108 $next_class = $this->
ctrl->getNextClass($this);
109 $cmd = $this->
ctrl->getCmd();
116 $this->tpl->setPermanentLink(
"exc", $this->
object->getRefId());
120 switch ($next_class) {
121 case "ilinfoscreengui":
122 $ilTabs->activateTab(
"info");
126 case 'ilpermissiongui':
127 $ilTabs->activateTab(
"permissions");
129 $this->
ctrl->forwardCommand($perm_gui);
132 case "illearningprogressgui":
133 $ilTabs->activateTab(
"learning_progress");
136 $this->
object->getRefId(),
139 $this->
ctrl->forwardCommand($new_gui);
140 $this->tabs_gui->setTabActive(
'learning_progress');
143 case 'ilobjectcopygui':
144 $ilCtrl->saveParameter($this,
'new_type');
145 $ilCtrl->setReturnByClass(get_class($this),
'create');
149 $this->
ctrl->forwardCommand($cp);
153 $ilTabs->activateTab(
"export");
155 $exp_gui->addFormat(
"xml");
156 $this->
ctrl->forwardCommand($exp_gui);
159 case "ilcommonactiondispatchergui":
161 $this->
ctrl->forwardCommand($gui);
164 case "ilcertificategui":
167 $this->tabs_gui->activateTab(
"settings");
168 $this->tabs_gui->activateSubTab(
"certificate");
171 $output_gui = $guiFactory->create($this->
object);
173 $this->
ctrl->forwardCommand($output_gui);
176 case "ilexassignmenteditorgui":
178 $ilTabs->activateTab(
"content");
182 $this->object->isCompletionBySubmissionEnabled(),
185 $this->
ctrl->forwardCommand($ass_gui);
188 case "ilexsubmissiongui":
190 $random_manager = $this->service->domain()->assignment()->randomAssignments($exc);
191 if (!$random_manager->isAssignmentVisible($this->requested_ass_id, $this->user->getId())) {
194 $ilTabs->activateTab(
"content");
196 $this->
ctrl->setReturn($this,
"showOverview");
197 $sub_gui = $this->exercise_ui->getSubmissionGUI();
198 $this->
ctrl->forwardCommand($sub_gui);
201 case "ilexercisemanagementgui":
203 if (
$GLOBALS[
'DIC']->
access()->checkRbacOrPositionPermissionAccess(
204 'edit_submissions_grades',
205 'edit_submissions_grades',
208 $ilTabs->activateTab(
"grades");
210 $this->
ctrl->forwardCommand($mgmt_gui);
216 case "ilexccriteriacataloguegui":
218 $ilTabs->activateTab(
"settings");
220 $ilTabs->activateSubTab(
"crit");
222 $this->
ctrl->forwardCommand($crit_gui);
232 case "ilexcrandomassignmentgui":
233 $gui = $this->exercise_ui->getRandomAssignmentGUI();
234 $this->
ctrl->forwardCommand($gui);
237 case 'ilobjectmetadatagui':
239 $this->tabs_gui->setTabActive(
'meta_data');
241 $this->
ctrl->forwardCommand($md_gui);
267 $a_new_object->saveData();
269 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"exc_added"),
true);
271 $ilCtrl->setParameterByClass(
"ilExAssignmentEditorGUI",
"ref_id", $a_new_object->
getRefId());
272 $ilCtrl->redirectByClass(
"ilExAssignmentEditorGUI",
"addAssignment");
282 $ilCtrl->redirectByClass(
"ilExAssignmentEditorGUI",
"listAssignments");
292 $random_manager =
$service->
domain()->assignment()->randomAssignments($exc);
294 $a_form->
setTitle($this->
lng->txt(
"exc_edit_exercise"));
297 $pres->setTitle($this->
lng->txt(
'obj_presentation'));
301 $a_form = $obj_service->commonSettings()->legacyForm($a_form, $this->
object)->addTileImage();
304 $section->setTitle($this->
lng->txt(
'exc_passing_exc'));
311 $this->
lng->txt(
"exc_pass_all"),
313 $this->lng->txt(
"exc_pass_all_info")
315 $radg->addOption($op1);
317 $this->
lng->txt(
"exc_pass_minimum_nr"),
319 $this->lng->txt(
"exc_pass_minimum_nr_info")
321 $radg->addOption($op2);
323 $this->
lng->txt(
"exc_random_selection"),
325 $this->lng->txt(
"exc_random_selection_info")
328 $op3->setDisabled(
true);
330 $this->
lng->txt(
"exc_random_selection_not_changeable_info") .
" " .
331 implode(
" ", $random_manager->getDeniedActivationReasons())
335 $radg->setDisabled(
true);
337 $this->
lng->txt(
"exc_pass_mode_not_changeable_info") .
" " .
338 implode(
" ", $random_manager->getDeniedDeactivationReasons())
344 $rn->setMaxLength(4);
345 $rn->setRequired(
true);
346 $rn->setMinValue(1,
false);
348 $rn->setMaxValue($cnt,
true);
349 $op3->addSubItem($rn);
351 $radg->addOption($op3);
356 $ni->setMaxLength(4);
357 $ni->setRequired(
true);
359 $min = max($mand, 1);
360 $ni->setMinValue($min,
true);
361 $ni->setInfo($this->
lng->txt(
"exc_min_nr_info"));
362 $op2->addSubItem($ni);
368 $this->
lng->txt(
"exc_passed_status_determination"),
369 "completion_by_submission"
371 $op1 =
new ilRadioOption($this->
lng->txt(
"exc_completion_by_tutor"), 0,
"");
372 $subcompl->addOption($op1);
374 $this->
lng->txt(
"exc_completion_by_submission"),
376 $this->lng->txt(
"exc_completion_by_submission_info")
378 $subcompl->addOption($op2);
387 $section->setTitle($this->
lng->txt(
'exc_publishing'));
392 $cb->setInfo($this->
lng->txt(
"exc_show_submissions_info"));
396 $section->setTitle($this->
lng->txt(
'exc_notification'));
401 $cbox->setInfo($this->
lng->txt(
"exc_submission_notification_info"));
407 $section->setTitle($this->
lng->txt(
'exc_feedback'));
414 $this->
lng->txt(
"exc_settings_feedback_mail"),
417 $option->setInfo($this->
lng->txt(
"exc_settings_feedback_mail_info"));
418 $fdb->addOption($option);
420 $this->
lng->txt(
"exc_settings_feedback_file"),
423 $option->setInfo($this->
lng->txt(
"exc_settings_feedback_file_info"));
424 $fdb->addOption($option);
426 $this->
lng->txt(
"exc_settings_feedback_text"),
429 $option->setInfo($this->
lng->txt(
"exc_settings_feedback_text_info"));
430 $fdb->addOption($option);
434 $section->setTitle($this->
lng->txt(
'obj_features'));
440 ->getObjectPositionSettingsByType($this->
object->getType());
442 if ($position_settings->isActive()) {
458 $a_values[
"show_submissions"] = $this->
object->getShowSubmissions();
459 $a_values[
"pass_mode"] = $this->
object->getPassMode();
460 if ($a_values[
"pass_mode"] ==
"nr") {
461 $a_values[
"pass_nr"] = $this->
object->getPassNr();
464 $a_values[
"nr_random_mand"] = $this->
object->getNrMandatoryRandom();
469 $this->object->getId()
472 $a_values[
'completion_by_submission'] = (
int) $this->
object->isCompletionBySubmissionEnabled();
474 $tfeedback = array();
475 if ($this->
object->hasTutorFeedbackMail()) {
478 if ($this->
object->hasTutorFeedbackText()) {
481 if ($this->
object->hasTutorFeedbackFile()) {
484 $a_values[
'tfeedback'] = $tfeedback;
488 ->isPositionAccessActiveForObject(
504 $this->
object->setShowSubmissions($a_form->
getInput(
"show_submissions"));
505 $this->
object->setPassMode($a_form->
getInput(
"pass_mode"));
506 if ($this->
object->getPassMode() ==
"nr") {
507 $this->
object->setPassNr($a_form->
getInput(
"pass_nr"));
510 $this->
object->setNrMandatoryRandom($a_form->
getInput(
"nr_random_mand"));
513 $this->
object->setCompletionBySubmission($a_form->
getInput(
'completion_by_submission') == 1);
515 $feedback = $a_form->
getInput(
"tfeedback");
516 $this->
object->setTutorFeedback(
518 ? array_sum($feedback)
525 $this->object->getId(),
526 (
bool) $a_form->
getInput(
"notification")
530 $obj_service->commonSettings()->legacyForm($a_form, $this->
object)->saveTileImage();
551 $ilCtrl->getLinkTarget($this,
"showOverview")
557 $ilCtrl->getLinkTargetByClass(
"ilExAssignmentEditorGUI",
"listAssignments")
560 $ilTabs->activateSubTab($a_activate);
563 protected function getTabs(): void
569 $ilHelp->setScreenIdComponent(
"exc");
572 $this->tabs_gui->addTab(
580 $this->tabs_gui->addTab(
583 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary")
593 $this->tabs_gui->addTab(
596 $this->ctrl->getLinkTarget($this,
'edit')
599 if ($this->
access->checkRbacOrPositionPermissionAccess(
600 'edit_submissions_grades',
601 'edit_submissions_grades',
602 $this->object->getRefId()
604 $this->tabs_gui->addTab(
606 $lng->
txt(
"exc_submissions_and_grades"),
607 $this->ctrl->getLinkTargetByClass(
"ilexercisemanagementgui",
"members")
615 $this->tabs_gui->addTab(
617 $lng->
txt(
'learning_progress'),
618 $this->ctrl->getLinkTargetByClass(array(
'ilobjexercisegui',
'illearningprogressgui'),
'')
623 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
625 $mdtab = $mdgui->getTab();
627 $this->tabs_gui->addTarget(
631 "ilobjectmetadatagui"
638 $this->tabs_gui->addTab(
641 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
647 $this->tabs_gui->addTab(
650 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm")
660 $this->
ctrl->setCmd(
"showSummary");
661 $this->
ctrl->setCmdClass(
"ilinfoscreengui");
673 public function infoScreen(): void
679 $ilTabs->activateTab(
"info");
690 $info->enablePrivateNotes();
694 $info->enableNewsEditing();
695 $info->setBlockProperty(
"news",
"settings",
true);
699 $record_gui->setInfoObject($info);
700 $record_gui->parse();
703 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
706 $info->addSection($this->
lng->txt(
"exc_overview"));
712 if (
$a[
"mandatory"]) {
716 $info->addProperty(
$lng->
txt(
"exc_assignments"), $cnt);
718 $info->addProperty(
$lng->
txt(
"exc_mandatory"), $mcnt);
721 $lng->
txt(
"exc_msg_all_mandatory_ass")
724 $info->addProperty(
$lng->
txt(
"exc_mandatory"), $mcnt);
727 sprintf(
$lng->
txt(
"exc_msg_min_number_ass"), $this->object->getPassNr())
730 $info->addProperty(
$lng->
txt(
"exc_mandatory"), $exc->getNrMandatoryRandom());
733 $lng->
txt(
"exc_msg_all_mandatory_ass")
742 $st = $this->
object->determinStatusOfUser(
$ilUser->getId());
743 $status = $st[
"overall_status"];
744 if ($lpcomment !=
"" || $mark !=
"" || $status !=
"notgraded") {
745 $info->addSection($this->
lng->txt(
"exc_feedback_from_tutor"));
746 if ($lpcomment !=
"") {
748 $this->
lng->txt(
"exc_comment"),
754 $this->
lng->txt(
"exc_mark"),
765 if ($status !=
"notgraded") {
770 $path = $icons->getImagePathCompleted();
773 $path = $icons->getImagePathFailed();
782 if ($st[
"failed_a_mandatory"]) {
783 $add =
" (" .
$lng->
txt(
"exc_msg_failed_mandatory") .
")";
784 } elseif ($status ==
"failed") {
785 $add =
" (" .
$lng->
txt(
"exc_msg_missed_minimum_number") .
")";
788 $this->
lng->txt(
"status"),
789 $img .
" " . $this->lng->txt(
"exc_" . $status) . $add
796 $this->
ctrl->forwardCommand($info);
802 $this->tabs_gui->activateSubTab(
"edit");
803 parent::editObject();
808 $this->tabs_gui->addSubTab(
810 $this->
lng->txt(
"general_settings"),
811 $this->ctrl->getLinkTarget($this,
"edit")
814 $this->tabs_gui->addSubTab(
816 $this->
lng->txt(
"exc_criteria_catalogues"),
817 $this->ctrl->getLinkTargetByClass(
"ilexccriteriacataloguegui",
"")
821 if ($validator->validate()) {
822 $this->tabs_gui->addSubTab(
824 $this->
lng->txt(
"certificate"),
825 $this->ctrl->getLinkTarget($this,
"certificate")
836 $main_tpl =
$DIC->ui()->mainTemplate();
838 $request =
$DIC->exercise()->internal()->gui()->request();
842 $ilAccess =
$DIC->access();
843 $ilCtrl =
$DIC->ctrl();
846 $ilCtrl->setTargetScript(
"ilias.php");
850 $parts = explode(
"_", $a_raw);
871 $ilCtrl->setParameterByClass(
"ilExerciseHandlerGUI",
"ref_id", $a_target);
873 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
874 $ilCtrl->setParameterByClass(
"ilExerciseHandlerGUI",
"target", $a_raw);
877 $ilCtrl->setParameterByClass(
"ilExerciseManagementGUI",
"ass_id", $ass_id);
882 $ilCtrl->redirectByClass(
883 array(
"ilExerciseHandlerGUI",
"ilObjExerciseGUI",
"ilExerciseManagementGUI"),
894 $ilCtrl->setParameterByClass(
"ilExerciseHandlerGUI",
"member_id", $member);
895 $ilCtrl->redirectByClass(
896 array(
"ilExerciseHandlerGUI",
"ilObjExerciseGUI",
"ilExerciseManagementGUI"),
902 if ((
$parts[1] ??
"") !=
"") {
903 $ilCtrl->setParameterByClass(
"ilExerciseHandlerGUI",
"ass_id",
$parts[1]);
904 $ilCtrl->setParameterByClass(
"ilExerciseHandlerGUI",
"ass_id_goto",
$parts[1]);
906 $ilCtrl->redirectByClass(
907 array(
"ilExerciseHandlerGUI",
"ilObjExerciseGUI"),
913 } elseif ($ilAccess->checkAccess(
"visible",
"", $a_target)) {
914 $ilCtrl->redirectByClass(
915 array(
"ilExerciseHandlerGUI",
"ilObjExerciseGUI"),
919 $main_tpl->setOnScreenMessage(
'failure', sprintf(
920 $lng->
txt(
"msg_no_perm_read_item"),
932 $ilLocator = $this->locator;
934 if (is_object($this->
object)) {
937 $this->
object->getTitle(),
938 $this->ctrl->getLinkTarget($this,
"showOverview"),
940 $this->requested_ref_id
958 public function showOverviewObject(): void
961 $ilTabs = $this->tabs;
963 $ilToolbar = $this->toolbar;
965 $exc = $this->object;
967 $this->checkPermission(
"read");
969 $ilTabs->activateTab(
"content");
970 $this->addContentSubTabs(
"content");
972 if ($this->handleRandomAssignmentEntryPage()) {
976 $tpl->addJavaScript(
"./Modules/Exercise/js/ilExcPresentation.js");
980 $this->object->getId(),
981 $this->object->getRefId(),
985 if ($this->certificateDownloadValidator->isCertificateDownloadable(
987 $this->object->getId()
989 $ilToolbar->addButton(
990 $this->
lng->txt(
"certificate"),
991 $this->ctrl->getLinkTarget($this,
"outCertificate")
998 $acc->setId(
"exc_ow_" . $this->
object->getId());
1001 $random_manager = $this->service->domain()->assignment()->randomAssignments($exc);
1002 foreach ($ass_data as $ass) {
1003 if (!$random_manager->isAssignmentVisible($ass->getId(), $this->user->getId())) {
1008 $force_open =
false;
1009 if ($this->requested_ass_id_goto === $ass->getId()) {
1014 $ass_gui->getOverviewHeader($ass),
1015 $ass_gui->getOverviewBody($ass),
1020 if (count($ass_data) < 2) {
1021 $acc->setBehaviour(
"FirstOpen");
1023 $acc->setUseSessionStorage(
true);
1026 $mtpl =
new ilTemplate(
"tpl.exc_ass_overview.html",
true,
true,
"Modules/Exercise");
1027 $mtpl->setVariable(
"CONTENT", $acc->getHTML());
1029 $tpl->setContent($mtpl->get());
1037 $this->checkPermission(
"write");
1038 $this->setSettingsSubTabs();
1039 $this->tabs_gui->activateTab(
"settings");
1040 $this->tabs_gui->activateSubTab(
"certificate");
1043 $output_gui = $guiFactory->create($this->
object);
1045 $output_gui->certificateEditor();
1052 $database =
$DIC->database();
1053 $logger =
$DIC->logger()->root();
1057 $objectId = $this->
object->getId();
1059 if (!$this->certificateDownloadValidator->isCertificateDownloadable(
$ilUser->getId(), $objectId)) {
1060 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"permission_denied"),
true);
1061 $this->
ctrl->redirect($this);
1065 $pdfGenerator =
new ilPdfGenerator($ilUserCertificateRepository, $logger);
1071 $this->
lng->txt(
'error_creating_certificate_pdf')
1074 $pdfAction->downloadPdf(
$ilUser->getId(), $objectId);
1082 $ctrl = $this->ctrl;
1083 $user = $this->user;
1085 if ($this->ass !==
null) {
1087 if (!$state->getCommonDeadline() && $state->getRelativeDeadline()) {
1088 $idl = $state->getIndividualDeadlineObject();
1089 $idl->setStartingTimestamp(time());
1094 $ctrl->redirect($this,
"showOverview");
1100 protected function handleRandomAssignmentEntryPage(): bool
1103 $exc = $this->object;
1106 $random_manager =
$service->domain()->assignment()->randomAssignments($exc);
1107 if ($random_manager->needsStart()) {
1108 $gui = $this->exercise_ui->getRandomAssignmentGUI();
1109 $gui->renderStartPage();
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Exercise gui request wrapper.
Exercise UI frontend presentation service class.
Exercise internal service.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Validates if an active certificate is stored in the database and can be downloaded by the user.
Just a wrapper class to create Unit Test for other classes.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
clearParametersByClass(string $a_class)
@inheritDoc
getLinkTarget(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
Class ilExAssignmentEditorGUI.
GUI class for exercise assignments.
static getAssignmentDataOfExercise(int $a_exc_id)
static lookupExerciseId(int $a_ass_id)
static count(int $a_ex_id)
static countMandatory(int $a_ex_id)
static getInstancesByExercise(int $a_exc_id)
static getInstanceByIds(int $a_ass_id, int $a_user_id=0)
Class ilExcCriteriaCatalogueGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilExerciseManagementGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupComment(int $a_usr_id, int $a_obj_id)
static _lookupMark(int $a_usr_id, int $a_obj_id)
static getInstance(int $variant=ilLPStatusIcons::ICON_VARIANT_DEFAULT, ?\ILIAS\UI\Renderer $renderer=null, ?\ILIAS\UI\Factory $factory=null)
loadLanguageModule(string $a_module)
Load language module.
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...
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _tracProgress(int $a_user_id, int $a_obj_id, int $a_ref_id, string $a_obj_type='')
static setNotification(int $type, int $user_id, int $id, bool $status=true)
Set notification status for object and user.
static hasNotification(int $type, int $user_id, int $id)
Check notification status for object and user.
const TYPE_EXERCISE_SUBMISSION
addLocatorItems()
Add locator item.
__construct($a_data, int $a_id, bool $a_call_by_reference)
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions"
Exercise GUIRequest $exercise_request
getEditFormCustomValues(array &$a_values)
Add values to custom edit fields.
string $requested_sort_by
string $requested_sort_order
updateCustom(ilPropertyFormGUI $a_form)
Insert custom update form values into object.
static _goto(string $a_target, string $a_raw)
addContentSubTabs(string $a_activate)
ilCertificateDownloadValidator $certificateDownloadValidator
int $requested_ass_id_goto
startAssignmentObject()
Start assignment with relative deadline.
afterSave(ilObject $a_new_object)
Post (successful) object creation hook.
Exercise InternalGUIService $exercise_ui
const TUTOR_FEEDBACK_TEXT
const TUTOR_FEEDBACK_MAIL
const TUTOR_FEEDBACK_FILE
GUI class for the workflow of copying objects.
Class ilObjectGUI Basic methods of all Output classes.
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
getTabs()
@abstract overwrite in derived GUI class of your object type
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
addHeaderAction()
Add header action menu.
prepareOutput(bool $show_sub_objects=true)
initEditCustomForm(ilPropertyFormGUI $a_form)
Add custom fields to update form.
ServerRequestInterface $request
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
const ORGU_POSITION_ACCESS
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getLongDescription()
get object long description (stored in object_description)
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
getService(string &$path)
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
Class ilPdfGeneratorConstantsTest.