62 private \ILIAS\HTTP\Services
$http;
66 private readonly
int $parent_ref_id,
67 ?
int $a_parent_obj_id =
null,
68 ?
string $a_parent_obj_type =
null
72 $this->
lng = $DIC->language();
73 $this->
ctrl = $DIC->ctrl();
74 $this->
tabs = $DIC->tabs();
75 $this->
access = $DIC->access();
76 $this->
http = $DIC->http();
78 $this->
toolbar = $DIC->toolbar();
79 $this->ui_factory =
$DIC->ui()->factory();
80 $this->resource_storage =
$DIC->resourceStorage();
81 $this->tpl =
$DIC->ui()->mainTemplate();
82 $this->
user = $DIC->user();
84 $this->parent_obj_id = $a_parent_obj_id
86 $this->parent_obj_type = $a_parent_obj_type
102 $DIC->resourceStorage(),
104 $DIC->ui()->mainTemplate()
117 if ($splittable_user_ids !== []) {
118 if ($splittable_user_ids === [self::TABLE_ALL_OBJECTS_ACTION]) {
124 if ($this->parent_ref_id) {
128 $badge_id = $this->
http->wrapper()->query()->retrieve(
'bid', $this->
refinery->kindlyTo()->int());
130 return [$user_ids, $badge_id];
132 foreach ($splittable_user_ids as $row) {
133 if (str_contains($row,
'_')) {
134 $split = explode(
'_', $row);
136 if ($badge_id ===
null && $split[0] !==
'') {
137 $badge_id = (
int) $split[0];
140 if ($split[1] !==
'') {
141 $user_ids[] = (
int) $split[1];
144 return [$user_ids, 0];
150 return [$user_ids, $badge_id];
155 $next_class = $this->
ctrl->getNextClass($this);
156 $cmd = $this->
ctrl->getCmd(self::DEFAULT_ACTION);
157 if ($cmd ===
null || $cmd ===
'' || !method_exists($this, $cmd .
'Cmd')) {
162 switch ($next_class) {
163 case 'ilpropertyformgui':
165 if ($this->request->getBadgeId()) {
166 $badge =
new ilBadge($this->request->getBadgeId());
167 $type = $badge->getTypeInstance();
168 $form = $this->
initBadgeForm(
'edit', $type, $badge->getTypeId());
172 $type_id = $this->request->getType();
173 $this->
ctrl->setParameter($this,
'type', $type_id);
175 $type =
$handler->getTypeInstanceByUniqueId($type_id);
178 $this->
ctrl->forwardCommand($form);
182 $badge_ids = $this->request->getMultiActionBadgeIdsFromUrl();
183 if (count($badge_ids) === 1) {
184 $badge_id = array_pop($badge_ids);
185 $this->
ctrl->setParameter($this,
'tid', $badge_id);
200 return $this->
http->wrapper()->query()->retrieve(
203 $this->refinery->kindlyTo()->string(),
204 $this->refinery->always(
null)
219 default => $this->
ctrl->redirect($this, self::DEFAULT_ACTION),
228 private function setTabs(
string $a_active): void
230 $this->
tabs->addSubTab(
232 $this->
lng->txt(
'obj_bdga'),
233 $this->ctrl->getLinkTarget($this, self::LIST_BADGES_ACTION)
236 $this->
tabs->addSubTab(
238 $this->
lng->txt(
'users'),
239 $this->ctrl->getLinkTarget($this, self::LIST_USERS_ACTION)
242 $this->
tabs->activateSubTab($a_active);
247 return $this->
access->checkAccess(
'write',
'', $this->parent_ref_id);
256 $valid_types =
$handler->getAvailableTypesForObjType($this->parent_obj_type);
259 foreach ($valid_types as
$id => $type) {
260 $this->
ctrl->setParameter($this,
'type',
$id);
261 $options[
$id] = $this->ui_factory->link()->standard(
264 $this->ctrl->getLinkTarget($this, self::ADD_BADGE_ACTION)
266 $this->
ctrl->setParameter($this,
'type',
null);
272 $this->ui_factory->dropdown()->standard(
$options)->withLabel($this->lng->txt(
'badge_create'))
275 $this->tpl->setOnScreenMessage(
276 $this->tpl::MESSAGE_TYPE_INFO,
277 $this->
lng->txt(
'badge_no_valid_types_for_obj')
281 $clip_ids = $this->session_repo->getBadgeIds();
282 if (count($clip_ids) > 0) {
284 $this->
toolbar->addSeparator();
289 $tt[] = $badge->getTitle();
293 $this->
lng->loadLanguageModule(
'content');
295 $this->
lng->txt(
'cont_paste_from_clipboard') .
296 ' (' . count($tt) .
')',
297 $this->
ctrl->getLinkTarget($this, self::PASTE_BADGES_ACTION),
304 $this->
lng->txt(
'clear_clipboard'),
305 $this->ctrl->getLinkTarget($this, self::CLEAR_CLIPBOARD_ACTION)
311 $table->renderTable(ILIAS_HTTP_PATH .
'/' . $this->
ctrl->getLinkTarget($this, self::TABLE_ACTIONS));
320 $type_id = $this->request->getType();
323 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
326 $this->
ctrl->setParameter($this,
'type', $type_id);
329 $type =
$handler->getTypeInstanceByUniqueId($type_id);
331 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
338 $this->tpl->setContent($a_form->getHTML());
344 string $a_type_unique_id
347 $form->
setFormAction($this->
ctrl->getFormAction($this, self::SAVE_BADGE_ACTION));
348 $form->setTitle($this->
lng->txt(
'badge_badge') .
' "' . $a_type->
getCaption() .
'"');
351 $form->addItem($active);
354 $title->setMaxLength(255);
355 $title->setRequired(
true);
356 $form->addItem($title);
359 $desc->setMaxNumOfChars(4000);
360 $desc->setRequired(
true);
361 $form->addItem($desc);
364 $crit->setMaxNumOfChars(4000);
365 $crit->setRequired(
true);
366 $form->addItem($crit);
368 if ($a_mode ===
'create') {
372 $img_mode->setRequired(
true);
373 $img_mode->setValue(
'tmpl');
374 $form->addItem($img_mode);
376 $img_mode_tmpl =
new ilRadioOption($this->
lng->txt(
'badge_image_from_template'),
'tmpl');
377 $img_mode->addOption($img_mode_tmpl);
379 $img_mode_up =
new ilRadioOption($this->
lng->txt(
'badge_image_from_upload'),
'up');
380 $img_mode->addOption($img_mode_up);
383 $img_upload->setRequired(
true);
384 $img_upload->setSuffixes([
'png',
'svg']);
385 $img_mode_up->addSubItem($img_upload);
390 if (count($valid_templates)) {
393 foreach ($valid_templates as $tmpl) {
394 $options[$tmpl->getId()] = $tmpl->getTitle();
398 $tmpl->setRequired(
true);
400 $img_mode_tmpl->addSubItem($tmpl);
403 $img_mode_tmpl->setDisabled(
true);
404 $img_mode->setValue(
'up');
408 $img_upload->setSuffixes([
'png',
'svg']);
409 $img_upload->setAllowDeletion(
false);
410 $img_upload->setUseCache(
false);
411 $form->addItem($img_upload);
415 $valid->setMaxLength(255);
420 $custom->initConfigForm($form, $this->parent_ref_id);
425 if ($a_mode ===
'create') {
426 $form->addCommandButton(self::SAVE_BADGE_ACTION, $this->
lng->txt(
'save'));
428 $form->addCommandButton(self::UPDATE_BADGE_ACTION, $this->
lng->txt(
'save'));
430 $form->addCommandButton(self::LIST_BADGES_ACTION, $this->
lng->txt(
'cancel'));
441 $type_id = $this->request->getType();
443 !$this->hasWrite()) {
444 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
447 $this->
ctrl->setParameter($this,
'type', $type_id);
450 $type =
$handler->getTypeInstanceByUniqueId($type_id);
452 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
455 $form = $this->initBadgeForm(
'create', $type, $type_id);
456 $custom = $type->getConfigGUIInstance();
458 if ($form->checkInput() &&
459 (!$custom || $custom->validateForm($form))) {
461 $badge->setParentId($this->parent_obj_id);
462 $badge->setTypeId($type_id);
463 $badge->setActive($form->getInput(
'act'));
464 $badge->setTitle($form->getInput(
'title'));
465 $badge->setDescription($form->getInput(
'desc'));
466 $badge->setCriteria($form->getInput(
'crit'));
467 $badge->setValid($form->getInput(
'valid'));
470 $badge->setConfiguration($custom->getConfigFromForm($form));
475 if ($form->getInput(
'img_mode') ===
'up') {
476 $this->badge_image_service->processImageUpload($badge);
482 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_SUCCESS, $this->
lng->txt(
'settings_saved'),
true);
483 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
486 $form->setValuesByPost();
487 $this->addBadgeCmd($form);
492 $badge_id = $this->request->getBadgeIdFromUrl();
494 $badge_id = $this->request->getBadgeId();
498 !$this->hasWrite()) {
499 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
502 $this->
ctrl->setParameter($this,
'bid', $badge_id);
504 $badge =
new ilBadge($badge_id);
508 $this->tpl->setOnScreenMessage(
509 $this->tpl::MESSAGE_TYPE_INFO,
510 sprintf($this->
lng->txt(
'badge_edit_with_published'), $static_cnt)
515 $type = $badge->getTypeInstance();
516 $a_form = $this->initBadgeForm(
'edit', $type, $badge->getTypeId());
517 $this->setBadgeFormValues($a_form, $badge, $type);
520 $this->tpl->setContent($a_form->getHTML());
528 $a_form->getItemByPostVar(
'act')->setChecked($a_badge->isActive());
535 $image_src = $this->badge_image_service->getImageFromBadge($a_badge);
536 if ($image_src !==
'') {
554 $badge_id = $this->request->getBadgeId();
556 !$this->hasWrite()) {
557 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
560 $this->
ctrl->setParameter($this,
'bid', $badge_id);
562 $badge =
new ilBadge($badge_id);
563 $type = $badge->getTypeInstance();
564 $custom = $type->getConfigGUIInstance();
569 $form = $this->initBadgeForm(
'update', $type, $badge->getTypeId());
570 if ($form->checkInput() &&
571 (!$custom || $custom->validateForm($form))) {
572 $badge->setActive($form->getInput(
'act'));
573 $badge->setTitle($form->getInput(
'title'));
574 $badge->setDescription($form->getInput(
'desc'));
575 $badge->setCriteria($form->getInput(
'crit'));
576 $badge->setValid($form->getInput(
'valid'));
578 $image = $form->getInput(
'img');
579 if (isset($image[
'name']) && $image[
'name'] !==
'') {
580 $this->removeResourceStorageImage($badge);
581 $this->badge_image_service->processImageUpload($badge);
585 $badge->setConfiguration($custom->getConfigFromForm($form));
587 $tmpl_id = $form->getInput(
'tmpl');
588 if ($tmpl_id !==
'') {
589 $this->removeResourceStorageImage($badge);
595 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_SUCCESS, $this->
lng->txt(
'settings_saved'),
true);
596 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
599 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_FAILURE, $this->
lng->txt(
'form_input_not_valid'));
600 $form->setValuesByPost();
601 $this->editBadgeCmd($form);
606 $badge_ids = $this->request->getMultiActionBadgeIdsFromUrl();
607 if ($badge_ids === [self::TABLE_ALL_OBJECTS_ACTION]) {
610 $badge_ids[] = $badge->getId();
614 $this->
tabs->clearTargets();
615 $this->
tabs->setBackTarget(
616 $this->
lng->txt(
'back'),
617 $this->ctrl->getLinkTarget($this, self::LIST_BADGES_ACTION)
621 $confirmation_gui->setFormAction($this->
ctrl->getFormAction($this));
622 $confirmation_gui->setHeaderText($this->
lng->txt(
'badge_deletion_confirmation'));
623 $confirmation_gui->setCancel($this->
lng->txt(
'cancel'), self::LIST_BADGES_ACTION);
624 $confirmation_gui->setConfirm($this->
lng->txt(
'delete'), self::DELETE_BADGES_ACTION);
626 foreach ($badge_ids as $badge_id) {
627 $badge =
new ilBadge((
int) $badge_id);
628 $confirmation_gui->addItem(
636 $this->tpl->setContent($confirmation_gui->getHTML());
641 $badge_ids = $this->request->getIds();
643 if (count($badge_ids) > 0) {
644 foreach ($badge_ids as $badge_id) {
645 $badge =
new ilBadge((
int) $badge_id);
648 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_SUCCESS, $this->
lng->txt(
'settings_saved'),
true);
650 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_FAILURE, $this->
lng->txt(
'badge_select_one'),
true);
653 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
665 $badge_ids = $this->request->getIds();
667 !$this->hasWrite()) {
668 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
676 $badge_ids = $this->getBadgesFromMultiAction();
678 $clip_ids = $this->session_repo->getBadgeIds();
679 $clip_ids = array_unique(
680 array_merge($clip_ids, $badge_ids)
682 $this->session_repo->setBadgeIds(array_map(intval(...), $clip_ids));
684 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
689 $this->session_repo->clear();
690 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
702 foreach ($this->session_repo->getBadgeIds() as $badge_id) {
703 $badge =
new ilBadge($badge_id);
704 if (in_array($badge->getTypeId(), $valid_types,
true)) {
714 $clip_ids = $this->session_repo->getBadgeIds();
715 if (!$this->hasWrite() || count($clip_ids) === 0) {
716 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
719 $copy_suffix = $this->
lng->txt(
'copy_of_suffix');
720 foreach ($this->getValidBadgesFromClipboard() as $badge) {
721 $badge->copy($this->parent_obj_id, $copy_suffix);
724 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
729 $badge_ids = $this->request->getMultiActionBadgeIdsFromUrl();
730 if (count($badge_ids) > 0) {
731 foreach ($badge_ids as $badge_id) {
732 if ($badge_id === self::TABLE_ALL_OBJECTS_ACTION) {
734 $badge =
new ilBadge($badge->getId());
735 $badge->setActive($a_status);
739 $badge =
new ilBadge((
int) $badge_id);
740 $badge->setActive($a_status);
743 $this->tpl->setOnScreenMessage(
744 $this->tpl::MESSAGE_TYPE_SUCCESS,
745 $this->
lng->txt(
'settings_saved'),
750 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_FAILURE, $this->
lng->txt(
'badge_select_one'),
true);
753 $this->
ctrl->redirect($this, self::LIST_BADGES_ACTION);
758 $this->toggleBadges(
true);
763 $this->toggleBadges(
false);
772 $this->setTabs(
'users');
774 if ($this->hasWrite()) {
776 $this->parent_obj_id,
777 $this->parent_obj_type
779 if (count($manual)) {
781 $drop->setOptions($manual);
782 $this->
toolbar->addInputItem($drop,
true);
785 $this->
ctrl->getFormAction($this, self::SELECT_BADGE_FOR_AWARD_REVOKE_ACTION)
788 $this->
lng->txt(
'badge_award_badge'),
789 self::SELECT_BADGE_FOR_AWARD_REVOKE_ACTION
795 $tbl->renderTable(ILIAS_HTTP_PATH .
'/' . $this->
ctrl->getLinkTarget($this, self::TABLE_ACTIONS));
800 $this->
ctrl->setParameter(
803 $this->
http->wrapper()->post()->retrieve(
'bid', $this->refinery->kindlyTo()->int())
805 $this->
ctrl->redirect($this, self::AWARD_BADGE_USER_SELECTION_ACTION);
810 $badge_ids = $this->request->getMultiActionBadgeIdsFromUrl();
813 if ($badge_ids === []) {
814 if ($this->
http->wrapper()->post()->has(
'bid')) {
815 $bid = $this->
http->wrapper()->post()->retrieve(
'bid', $this->
refinery->kindlyTo()->int());
816 } elseif ($this->
http->wrapper()->query()->has(
'bid')) {
817 $bid = $this->
http->wrapper()->query()->retrieve(
'bid', $this->
refinery->kindlyTo()->int());
819 } elseif (count($badge_ids) === 1) {
820 $bid = (
int) $badge_ids[0];
824 !$this->hasWrite()) {
825 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
828 $manual = array_keys(
832 if (!in_array($bid, $manual,
true)) {
833 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
836 $back_target = self::LIST_USERS_ACTION;
837 if ($this->request->getTgt() ===
'bdgl') {
838 $this->
ctrl->saveParameter($this,
'tgt');
839 $back_target = self::LIST_BADGES_ACTION;
842 $this->
tabs->clearTargets();
843 $this->
tabs->setBackTarget(
844 $this->
lng->txt(
'back'),
845 $this->ctrl->getLinkTarget($this, $back_target)
848 $this->
ctrl->setParameter($this,
'bid', $bid);
853 $tbl->renderTable(ILIAS_HTTP_PATH .
'/' . $this->
ctrl->getLinkTarget($this, self::TABLE_ACTIONS));
858 $splittable_user_ids = $this->request->getBadgeAssignableUsers();
859 [$user_ids, $badge_id] = $this->splitBadgeAndUserIdsFromString($splittable_user_ids);
863 !$this->hasWrite()) {
864 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
871 $ass->setAwardedBy($this->
user->getId());
874 $new_badges[
$user_id][] = $badge_id;
880 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_SUCCESS, $this->
lng->txt(
'settings_saved'),
true);
881 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
886 $splittable_user_ids = $this->request->getMultiActionBadgeIdsFromUrl();
887 [$user_ids, $badge_id] = $this->splitBadgeAndUserIdsFromString($splittable_user_ids);
891 !$this->hasWrite()) {
892 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
895 $this->
tabs->clearTargets();
896 $this->
tabs->setBackTarget(
897 $this->
lng->txt(
'back'),
898 $this->ctrl->getLinkTarget($this, self::LIST_USERS_ACTION)
901 $badge =
new ilBadge($badge_id);
903 $this->
ctrl->setParameter($this,
'bid', $badge->getId());
906 $confirmation_gui->setFormAction($this->
ctrl->getFormAction($this, self::DEASSIGN_BADGE_ACTION));
907 $confirmation_gui->setHeaderText(
908 sprintf($this->
lng->txt(
'badge_assignment_deletion_confirmation'), $badge->getTitle())
910 $confirmation_gui->setCancel($this->
lng->txt(
'cancel'), self::LIST_USERS_ACTION);
911 $confirmation_gui->setConfirm($this->
lng->txt(
'badge_remove_badge'), self::DEASSIGN_BADGE_ACTION);
916 if (in_array(
$user_id, $assigned_users,
true)) {
917 $confirmation_gui->addItem(
925 $this->tpl->setContent($confirmation_gui->getHTML());
930 $post_values = $this->request->getIds();
933 foreach ($post_values as $usr_id => $found_badge_id) {
934 $badge_id = $found_badge_id;
935 $user_ids[] = $usr_id;
940 !$this->hasWrite()) {
941 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
949 $this->tpl->setOnScreenMessage($this->tpl::MESSAGE_TYPE_SUCCESS, $this->
lng->txt(
'settings_saved'),
true);
950 $this->
ctrl->redirect($this, self::LIST_USERS_ACTION);
959 $new_rid = $this->badge_image_service->cloneBadgeImageByRid($rid);
968 $this->resource_storage->manage()->remove(
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Class IllegalStateException.
Class ResourceIdentification.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstancesByBadgeId(int $a_badge_id)
static getAssignedUsers(int $a_badge_id)
static exists(int $a_badge_id, int $a_user_id)
static getInstancesByType(string $a_type_unique_id)
@ilCtrl_Calls ilBadgeManagementGUI: ilPropertyFormGUI
selectBadgeForAwardingOrRevokingCmd()
const string PASTE_BADGES_ACTION
const string DELETE_BADGES_ACTION
const string AWARD_BADGE_USER_SELECTION_ACTION
addBadgeCmd(?ilPropertyFormGUI $a_form=null)
ilGlobalTemplateInterface $tpl
setBadgeFormValues(ilPropertyFormGUI $a_form, ilBadge $a_badge, ilBadgeType $a_type)
splitBadgeAndUserIdsFromString(array $splittable_user_ids)
const string LIST_USERS_ACTION
removeResourceStorageImage(ilBadge $badge)
setTabs(string $a_active)
const string TABLE_ACTIONS
const string DEFAULT_ACTION
cloneBadgeTemplate(ilBadge $badge, ?ResourceIdentification $rid)
Services $resource_storage
const string SAVE_BADGE_ACTION
const string ADD_BADGE_ACTION
getBadgesFromMultiAction()
__construct(private readonly int $parent_ref_id, ?int $a_parent_obj_id=null, ?string $a_parent_obj_type=null)
const string UPDATE_BADGE_ACTION
getSafePostCommands()
This method must return a list of safe POST commands.
getValidBadgesFromClipboard()
ILIAS HTTP Services $http
const string CLEAR_CLIPBOARD_ACTION
initBadgeForm(string $a_mode, ilBadgeType $a_type, string $a_type_unique_id)
ilBadgeGUIRequest $request
const string TABLE_ALL_OBJECTS_ACTION
getUnsafeGetCommands()
This method must return a list of unsafe GET commands.
ilBadgeManagementSessionRepository $session_repo
ilBadgeImage $badge_image_service
const string DEASSIGN_BADGE_ACTION
awardBadgeUserSelectionCmd()
ILIAS UI Factory $ui_factory
editBadgeCmd(?ilPropertyFormGUI $a_form=null)
toggleBadges(bool $a_status)
const string SELECT_BADGE_FOR_AWARD_REVOKE_ACTION
const string LIST_BADGES_ACTION
Stores repository clipboard data.
getImagePath(bool $a_full_path=true)
static getExtendedTypeCaption(ilBadgeType $a_type)
static getInstancesByParentId(int $a_parent_id, ?array $a_filter=null)
setImageRid(?string $image_rid)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Base class for ILIAS Exception handling.
loadLanguageModule(string $a_module)
Load language module.
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)
This class represents an option in a radio group.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a text area property in a property form.
This class represents a text property in a property form.
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link='', bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path=null)
Default behaviour is:
Interface ilAccessHandler This interface combines all available interfaces which can be called via gl...
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...
getConfigGUIInstance()
Get GUI config instance.
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...
static http()
Fetches the global http state from ILIAS.