19declare(strict_types=1);
36 protected \ILIAS\DI\UIServices
$ui;
38 protected \ILIAS\FileUpload\FileUpload
$upload;
71 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
75 $this->
ctrl = $DIC->ctrl();
76 $this->
lng = $DIC->language();
77 $this->tpl =
$DIC->ui()->mainTemplate();
78 $this->
user = $DIC->user();
79 $this->tree =
$DIC->repositoryTree();
80 $this->
access = $DIC->access();
81 $this->
toolbar = $DIC->toolbar();
82 $this->ilErr =
$DIC[
"ilErr"];
83 $this->object_service =
$DIC->object();
84 $this->objDefinition =
$DIC[
'objDefinition'];
85 $this->tabs_gui =
$DIC->tabs();
86 $this->
locator = $DIC[
"ilLocator"];
87 $this->rbacreview =
$DIC->rbac()->review();
88 $this->
event = $DIC->event();
89 $this->
upload = $DIC->upload();
90 $this->
help = $DIC->help();
96 $this->
lng->loadLanguageModule(
"event");
97 $this->
lng->loadLanguageModule(
'crs');
98 $this->
lng->loadLanguageModule(
'trac');
99 $this->
lng->loadLanguageModule(
'sess');
101 if ($this->
http->wrapper()->query()->has(
'ref_id')) {
102 $this->requested_ref_id = $this->
http->wrapper()->query()->retrieve(
108 if ($this->
http->wrapper()->query()->has(
'user_id')) {
109 $this->requested_user_id = $this->
http->wrapper()->query()->retrieve(
115 if ($this->
http->wrapper()->post()->has(
'file_id')) {
116 $this->requested_file_id = $this->
http->wrapper()->post()->retrieve(
120 } elseif ($this->
http->wrapper()->query()->has(
'file_id')) {
121 $this->requested_file_id = $this->
http->wrapper()->query()->retrieve(
127 if ($this->
http->wrapper()->query()->has(
'offset')) {
128 $this->requested_offset = $this->
http->wrapper()->query()->retrieve(
134 if ($this->
http->wrapper()->query()->has(
'sort_by')) {
135 $this->requested_sort_by = $this->
http->wrapper()->query()->retrieve(
137 $this->
refinery->kindlyTo()->string()
141 if ($this->
http->wrapper()->query()->has(
'sort_order')) {
142 $this->requested_sort_order = $this->
http->wrapper()->query()->retrieve(
144 $this->
refinery->kindlyTo()->string()
148 if ($this->
http->wrapper()->post()->has(
'items')) {
149 $this->requested_items = $this->
http->wrapper()->post()->retrieve(
151 $this->
refinery->kindlyTo()->listOf(
152 $this->refinery->kindlyTo()->int()
156 $this->
ui = $DIC->ui();
165 $next_class = $this->
ctrl->getNextClass($this);
166 $cmd = $this->
ctrl->getCmd();
170 $ilAccess->checkAccess(
'read',
'', $this->requested_ref_id)
172 $GLOBALS[
'DIC'][
'ilNavigationHistory']->addItem(
173 $this->requested_ref_id,
174 ilLink::_getLink($this->requested_ref_id,
'sess'),
176 $this->
object->getPresentationTitle()
181 switch ($next_class) {
182 case 'ilsessionmembershipgui':
183 $this->tabs_gui->activateTab(
'members');
185 $this->
ctrl->forwardCommand($mem_gui);
188 case "ilinfoscreengui":
193 case 'ilobjectmetadatagui':
195 $this->tabs_gui->activateTab(
'metadata');
197 $this->
ctrl->forwardCommand($md_gui);
200 case 'ilpermissiongui':
201 $this->tabs_gui->setTabActive(
'perm_settings');
203 $ret = $this->
ctrl->forwardCommand($perm_gui);
206 case 'ilobjectcopygui':
208 $cp->setType(
'sess');
209 $this->
ctrl->forwardCommand($cp);
213 $this->tabs_gui->setTabActive(
"export");
215 $exp_gui->addFormat(
"xml");
216 $ret = $this->
ctrl->forwardCommand($exp_gui);
219 case "ilcommonactiondispatchergui":
221 $this->
ctrl->forwardCommand($gui);
224 case 'ilmembershipgui':
225 $this->
ctrl->setReturn($this,
'members');
227 $this->
ctrl->forwardCommand($mem);
230 case "illearningprogressgui":
233 $this->
object->getRefId(),
234 $this->requested_user_id ?: $ilUser->getId()
236 $this->
ctrl->forwardCommand($new_gui);
237 $this->tabs_gui->setTabActive(
'learning_progress');
240 case "ilpropertyformgui":
242 if (!is_object($this->
object)) {
246 if ($form ===
true) {
250 $ilCtrl->forwardCommand(
$form);
253 case "ilbookinggatewaygui":
257 $this->tabs_gui->activateTab(
'obj_tool_setting_booking');
259 $this->
ctrl->forwardCommand($gui);
263 if ($cmd ==
"applyFilter") {
265 } elseif ($cmd ==
"resetFilter") {
282 $this->
ctrl->redirectByClass(
'ilSessionMembershipGUI',
'participants');
297 parent::prepareOutput($show_sub_objects);
300 $title = strlen($this->
object->getTitle()) ? (
': ' . $this->
object->getTitle()) :
'';
302 $this->tpl->setTitle(
303 $this->
object->getFirstAppointment()->appointmentToString() . $title
322 $this->getCurrentObject()->isRegistrationUserLimitEnabled() &&
323 $this->getCurrentObject()->getRegistrationMaxUsers() &&
326 if (!$this->getCurrentObject()->isRegistrationWaitingListEnabled()) {
327 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'sess_reg_max_users_exceeded'),
true);
328 $this->
ctrl->redirect($this,
'infoScreen');
331 $wait->addToList($ilUser->getId());
332 $this->
ctrl->redirect($this,
'infoScreen');
336 switch ($this->getCurrentObject()->getRegistrationType()) {
338 $this->
ctrl->redirect($this,
'info');
342 $part->register($ilUser->getId());
343 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_registered'),
true);
345 $ilAppEventHandler->raise(
346 "components/ILIAS/Session",
349 'obj_id' => $this->getCurrentObject()->
getId(),
350 'ref_id' => $this->getCurrentObject()->
getRefId(),
351 'usr_id' => $ilUser->getId()
355 $this->
ctrl->redirect($this,
'infoScreen');
359 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'sess_registered_confirm'),
true);
360 $part->addSubscriber($ilUser->getId());
362 $ilAppEventHandler->raise(
363 "components/ILIAS/Session",
366 'obj_id' => $this->getCurrentObject()->
getId(),
367 'ref_id' => $this->getCurrentObject()->
getRefId(),
368 'usr_id' => $ilUser->getId()
372 $this->
ctrl->redirect($this,
'infoScreen');
383 if ($ilUser->isAnonymous()) {
384 $this->
ctrl->redirect($this,
'infoScreen');
390 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_unregistered'),
true);
393 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_registered'),
true);
396 $this->
ctrl->redirect($this,
'infoScreen');
407 if ($part->isSubscriber($ilUser->getId())) {
408 $part->deleteSubscriber($ilUser->getId());
411 $part->unregister($ilUser->getId());
413 if ($a_refuse_participation) {
427 $this->object->getRefId()
435 $ilAppEventHandler->raise(
436 "components/ILIAS/Session",
439 'obj_id' => $this->getCurrentObject()->
getId(),
440 'ref_id' => $this->getCurrentObject()->
getRefId(),
441 'usr_id' => $ilUser->getId()
444 if ($a_refuse_participation) {
445 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_participation_refused_info'),
true);
447 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_unregistered'),
true);
449 $this->
ctrl->returnToParent($this);
452 public static function _goto(
string $a_target): void
455 $main_tpl =
$DIC->ui()->mainTemplate();
457 $ilAccess =
$DIC->access();
460 $ilCtrl =
$DIC->ctrl();
461 $parts = explode(
'_', $a_target);
464 if ($ilAccess->checkAccess(
'write',
'', $a_target)) {
466 $ilCtrl->setTargetScript(
'ilias.php');
467 $ilCtrl->setParameterByClass(
'ilSessionMembershipGUI',
'ref_id', $a_target);
468 $ilCtrl->setTargetScript(
'ilias.php');
469 $ilCtrl->redirectByClass(array(
'ilRepositoryGUI', __CLASS__,
'ilSessionMembershipGUI'));
473 if ($ilAccess->checkAccess(
'visible',
"", $a_target)) {
476 $main_tpl->setOnScreenMessage(
'failure', sprintf(
477 $lng->
txt(
"msg_no_perm_read_item"),
491 $this->
ctrl->redirectByClass(
492 [self::class, ilInfoScreenGUI::class],
541 if (!$this->getCurrentObject()->enabledRegistrationForUsers() || $ilUser->isAnonymous()) {
547 $this->
ctrl->setParameter($this,
"ref_id", $this->getCurrentObject()->
getRefId());
550 if ($this->
object->isCannotParticipateOptionEnabled()) {
551 $btn_excused = $this->
ui->factory()->button()->standard(
552 $this->
lng->txt(
'sess_bt_refuse'),
553 $this->ctrl->getLinkTarget($this,
'refuseParticipation')
559 if (!is_null($btn_excused)) {
560 $ilToolbar->addComponent($btn_excused);
563 } elseif ($part->isSubscriber($ilUser->getId())) {
564 if (!is_null($btn_excused)) {
565 $ilToolbar->addComponent($btn_excused);
569 if (!is_null($btn_excused)) {
570 $ilToolbar->addComponent($btn_excused);
578 $this->getCurrentObject()->isRegistrationUserLimitEnabled() &&
579 $this->getCurrentObject()->getRegistrationMaxUsers() &&
582 if ($this->getCurrentObject()->isRegistrationWaitingListEnabled()) {
583 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_reg_max_users_exceeded_wl'));
584 $btn_attend = $this->
ui->factory()->button()->primary(
585 $this->
lng->txt(
"mem_add_to_wl"),
586 $this->ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
588 $ilToolbar->addComponent($btn_attend);
590 $ilToolbar->addComponent($btn_excused);
593 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_reg_max_users_exceeded'));
597 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_join_info'));
598 $btn_attend = $this->
ui->factory()->button()->primary(
599 $this->
lng->txt(
"join_session"),
600 $this->ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
602 $ilToolbar->addComponent($btn_attend);
604 $ilToolbar->addComponent($btn_excused);
611 protected function infoScreen(): void
618 $this->tabs_gui->setTabActive(
'info_short');
623 $info->enableBookingInfo(
true);
637 foreach ($eventItems as $item) {
642 $list_gui->setContainerObject($this);
646 $html .= $list_gui->getListItemHTML(
647 (
int) $item[
'ref_id'],
648 (
int) $item[
'obj_id'],
649 (
string) $item[
'title'],
650 (
string) $item[
'description']
655 $info->addSection($this->
lng->txt(
'event_materials'));
665 if (strlen($this->
object->getLocation()) || strlen($this->
object->getDetails())) {
666 $info->addSection($this->
lng->txt(
'event_section_information'));
670 $this->
lng->txt(
'event_location'),
674 if (strlen($this->
object->getDetails())) {
676 $this->
lng->txt(
'event_details_workflow'),
682 $this->record_gui->setInfoObject(
$info);
683 $this->record_gui->parse();
686 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
690 if ($this->
object->hasTutorSettings()) {
691 $info->addSection($this->
lng->txt(
'event_tutor_data'));
692 if (strlen($fullname = $this->
object->getName())) {
694 $this->
lng->txt(
'event_lecturer'),
698 if (strlen($email = $this->
object->getEmail())) {
700 $this->
lng->txt(
'tutor_email'),
704 if (strlen($phone = $this->
object->getPhone())) {
706 $this->
lng->txt(
'tutor_phone'),
714 $contacts =
$parts->getContacts();
715 if (count($contacts) > 0) {
716 $info->addSection($this->
lng->txt(
"crs_mem_contacts"));
717 foreach ($contacts as $contact) {
719 $pgui->setBackUrl($this->
ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
720 $pgui->setEmbedded(
true);
721 $info->addProperty(
"", $pgui->getHTML());
731 $this->object->getRefId(),
732 $this->object->getId(),
739 if (!is_object($this->
object)) {
752 $this->
ctrl->setParameter($this,
'ref_id', $this->
object->getRefId());
753 $this->
ctrl->setParameter($this,
'new_type',
'');
754 $this->
ctrl->redirect($this,
'materials');
757 public function saveObject(
bool $a_redirect_on_success =
true): void
764 $this->
ctrl->saveParameter($this,
"new_type");
767 $this->ilErr->setMessage(
'');
768 if (!$this->
form->checkInput()) {
769 $this->tpl->setOnScreenMessage(
771 $this->
lng->txt(
'err_check_input')
773 $this->
form->setValuesByPost();
780 $this->ilErr->setMessage($this->
lng->txt(
'err_check_input'));
786 $this->
object->validate();
787 $this->
object->getFirstAppointment()->validate();
789 if (strlen($this->ilErr->getMessage())) {
790 $this->tpl->setOnScreenMessage(
'failure', $this->ilErr->getMessage());
791 $this->
form->setValuesByPost();
795 $this->
object->create();
796 $this->
object->createReference();
797 $this->
object->putInTree($this->requested_ref_id);
798 $this->
object->setPermissions($this->requested_ref_id);
808 $this->record_gui->writeEditForm($this->
object->getId());
815 $this->
object->applyDidacticTemplate($dtpl);
819 if (!$this->
form->getInput(
"lp_preset")) {
822 $lp_obj_settings->update(
false);
826 $this->
object->getFirstAppointment()->setSessionId($this->
object->getId());
827 $this->
object->getFirstAppointment()->create();
831 $object_service->
commonSettings()->legacyForm($this->
form, $this->
object)->saveTileImage();
835 if ($a_redirect_on_success) {
836 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'event_add_new_event'),
true);
837 $this->
ctrl->returnToParent($this);
846 $items = $ev->getItems();
850 if (!isset($_FILES[
'files'][
'name'][
$counter])) {
853 if (!strlen($_FILES[
'files'][
'name'][
$counter])) {
860 $file->setDescription(
'');
863 $new_ref_id = $file->createReference();
868 if (!
$upload->hasBeenProcessed()) {
871 $file->getUploadFile(
872 $_FILES[
'files'][
'tmp_name'][
$counter],
876 $items[] = $new_ref_id;
880 $ev->setItems($items);
888 if (!$this->rec->getFrequenceType()) {
893 $period_start = clone $this->
object->getFirstAppointment()->getStart();
896 $period_end = clone $this->
object->getFirstAppointment()->getStart();
898 $date_list = $calc->calculateDateList($period_start, $period_end);
900 $period_diff = $this->
object->getFirstAppointment()->getEnd()->get(
IL_CAL_UNIX) -
901 $this->
object->getFirstAppointment()->getStart()->get(
IL_CAL_UNIX);
905 $eitems = $evi->getItems();
908 foreach ($date_list->get() as $date) {
913 $new_obj = $this->
object->cloneObject($parent_id);
918 $new_obj->applyDidacticTemplate($dtpl);
922 $new_obj->getFirstAppointment()->setStartingTime($date->get(
IL_CAL_UNIX));
923 $new_obj->getFirstAppointment()->setEndingTime($date->get(
IL_CAL_UNIX) + $period_diff);
924 $new_obj->getFirstAppointment()->update();
928 if (!$a_activate_lp) {
931 $lp_obj_settings->update(
false);
935 $new_evi->setItems($eitems);
944 $this->tabs_gui->setTabActive(
'settings');
947 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_edit.html',
'components/ILIAS/Session');
948 $this->tpl->setVariable(
'EVENT_EDIT_TABLE', $this->
form->getHTML());
955 $old_autofill = $this->
object->hasWaitingListAutoFill();
958 $this->ilErr->setMessage(
'');
959 if (!$this->
form->checkInput()) {
960 $this->tpl->setOnScreenMessage(
962 $this->
lng->txt(
'err_check_input')
964 $this->
form->setValuesByPost();
973 $new_type_info = $this->
form->getInput(
'didactic_type');
974 if ($new_type_info) {
975 $new_type = explode(
'_', $this->
form->getInput(
'didactic_type'));
976 $new_type = (
int) $new_type[1];
978 $modified = ($new_type !== $old_type);
985 $this->tpl->setOnScreenMessage(
987 $this->
lng->txt(
'err_check_input')
989 $this->
form->setValuesByPost();
995 $this->
object->validate();
996 $this->
object->getFirstAppointment()->validate();
998 if (strlen($this->ilErr->getMessage())) {
999 $this->tpl->setOnScreenMessage(
'failure', $this->ilErr->getMessage());
1003 $this->
object->update();
1004 $this->
object->getFirstAppointment()->update();
1014 $this->record_gui->writeEditForm();
1018 $object_service->
commonSettings()->legacyForm($this->
form, $this->
object)->saveTileImage();
1021 if (!$old_autofill &&
1022 $this->
object->hasWaitingListAutoFill()) {
1023 $this->
object->handleAutoFill();
1028 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_updated'),
true);
1029 $this->
ctrl->redirect($this,
'edit');
1033 if ($new_type == 0) {
1034 $new_type_txt = $this->
lng->txt(
'il_sess_status_open');
1037 $new_type_txt = $dtpl->getPresentationTitle($this->
lng->getLangKey());
1039 $this->tabs_gui->activateTab(
'settings');
1042 $confirm->setFormAction($this->
ctrl->getFormAction($this));
1043 $confirm->setHeaderText($this->
lng->txt(
'sess_warn_sess_type_changed'));
1047 $this->
lng->txt(
'sess_info_new_sess_type') .
': ' . $new_type_txt
1049 $confirm->setConfirm($this->
lng->txt(
'sess_change_type'),
'updateSessionType');
1050 $confirm->setCancel($this->
lng->txt(
'cancel'),
'edit');
1052 $this->tpl->setContent($confirm->getHTML());
1061 $this->
object->getRefId(),
1062 (
int) $this->http->request()->getParsedBody()[
'sess_type']
1065 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
1066 $this->
ctrl->redirect($this,
'edit');
1076 $is_course = $is_group =
false;
1080 if ($this->container_ref_id) {
1083 if (!$this->container_ref_id) {
1085 if ($this->container_ref_id) {
1089 if (!$this->container_ref_id) {
1090 $this->tpl->setOnScreenMessage(
'failure',
'No container object found. Aborting');
1095 if ($a_init_participants && $this->container_obj_id) {
1098 } elseif ($is_group) {
1108 $this->tabs_gui->activateTab(
'materials');
1110 $parent_ref_id = $this->tree->getParentId($this->
object->getRefId());
1112 $parent_gui_class =
'ilObj' . $this->obj_definition->getClassName($parent_type) .
'GUI';
1113 $this->
ctrl->setParameterByClass($parent_gui_class,
'ref_id', $parent_ref_id);
1118 $this->
object->getRefId()
1122 $this->
ctrl->clearParameterByClass($parent_gui_class,
'ref_id');
1128 $tbl->setDisableFilterHiding(
true);
1130 $tbl->addMultiCommand(
'saveMaterials', $this->
lng->txt(
'sess_assign'));
1131 $tbl->addMultiCommand(
"removeMaterials", $this->
lng->txt(
"remove"));
1133 $tbl->setTitle($this->
lng->txt(
"event_assign_materials_table"));
1134 $tbl->setDescription($this->
lng->txt(
'event_assign_materials_info'));
1136 $tbl->setMaterialItems($this->event_items->getItems());
1138 $data = $tbl->getDataFromDb();
1139 $tbl->setMaterials(
$data);
1141 $this->tpl->setContent($tbl->getHTML());
1146 $parent_ref_id = $this->tree->getParentId($this->
object->getRefId());
1148 $parent_gui_class =
'ilObj' . $this->obj_definition->getClassName($parent_type) .
'GUI';
1149 $parent_gui =
new $parent_gui_class(
'', $parent_ref_id,
true,
false);
1150 $types = $parent_gui->getCreatableObjectTypes();
1151 foreach (array_merge([
'itgr',
'sess' ], $this->objDefinition->getSideBlockTypes()) as $type_to_remove) {
1152 unset($types[$type_to_remove]);
1160 $tbl->writeFilterToSession();
1161 $tbl->resetOffset();
1162 $this->
ctrl->redirect($this,
"materials");
1168 $tbl->resetOffset();
1169 $tbl->resetFilter();
1170 $this->
ctrl->redirect($this,
"materials");
1178 $this->event_items->removeItems($items_checked);
1186 $db_items = $this->event_items->getItems();
1189 $list_items_checked = array_map(
'intval', $list_items_checked);
1191 $items_to_save = array_merge($db_items, $list_items_checked);
1192 $items_to_save = array_unique($items_to_save);
1194 $this->event_items->setItems($items_to_save);
1195 $this->event_items->update();
1206 $tbl->storeNavParameter();
1208 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
1209 $this->
ctrl->redirect($this,
'materials');
1218 $ilTabs->setTabActive(
'event_edit_members');
1221 $form = $list->initForm(
'printAttendanceList');
1234 $list->setId(
'sessattlst');
1236 $event_app = $this->
object->getFirstAppointment();
1240 $desc .=
" " . $this->
object->getTitle();
1241 $list->setTitle($this->
lng->txt(
'sess_attendance_list'), $desc);
1243 $list->addPreset(
'mark', $this->
lng->txt(
'trac_mark'),
true);
1244 $list->addPreset(
'comment', $this->
lng->txt(
'trac_comment'),
true);
1245 if ($this->
object->enabledRegistration()) {
1246 $list->addPreset(
'registered', $this->
lng->txt(
'event_tbl_registered'),
true);
1248 $list->addPreset(
'participated', $this->
lng->txt(
'event_tbl_participated'),
true);
1249 $list->addBlank($this->
lng->txt(
'sess_signature'));
1251 $list->addUserFilter(
'registered', $this->
lng->txt(
'event_list_registered_only'));
1261 $list->initFromForm();
1262 $list->setCallback(array($this,
'getAttendanceListUserData'));
1265 $list->getFullscreenHTML();
1270 $data = $this->event_part->getUser($a_user_id);
1272 if ($a_filters && $a_filters[
"registered"] && !
$data[
"registered"]) {
1277 $this->
lng->txt(
'yes') :
1278 $this->
lng->txt(
'no');
1279 $data[
'participated'] =
$data[
'participated'] ?
1280 $this->
lng->txt(
'yes') :
1281 $this->
lng->txt(
'no');
1292 if (!$ilAccess->checkAccess(
'manage_members',
'', $this->object->getRefId())) {
1293 $this->ilErr->raiseError($this->
lng->txt(
'msg_no_perm_read'), $this->ilErr->MESSAGE);
1296 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_list.html',
'components/ILIAS/Session');
1297 $this->
__showButton($this->
ctrl->getLinkTarget($this,
'exportCSV'), $this->lng->txt(
'event_csv_export'));
1299 $this->tpl->addBlockFile(
"EVENTS_TABLE",
"events_table",
"tpl.table.html");
1300 $this->tpl->addBlockFile(
'TBL_CONTENT',
'tbl_content',
'tpl.sess_list_row.html',
'components/ILIAS/Session');
1303 $members = $members_obj->getParticipants();
1309 $this->
lng->txt(
"event_overview"),
1310 'standard/icon_usr.svg',
1311 $this->lng->txt(
'obj_usr')
1313 $this->
ctrl->setParameter($this,
'offset', $this->requested_offset);
1319 if (!is_object($tmp_event) || $tmp_event->getType() !=
'sess') {
1322 $events[] = $tmp_event;
1329 $headerNames[] = $this->
lng->txt(
'name');
1330 $headerVars[] =
"name";
1331 $colWidth[] =
'20%';
1333 for ($i = 1; $i <= count($events); $i++) {
1334 $headerNames[] = $i;
1335 $headerVars[] =
"event_" . $i;
1336 $colWidth[] = 80 / count($events) .
"%";
1339 $this->tpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this));
1340 $tbl->setHeaderNames($headerNames);
1341 $tbl->setHeaderVars($headerVars, $this->
ctrl->getParameterArray($this));
1342 $tbl->setColumnWidth($colWidth);
1344 $tbl->setOrderColumn($this->requested_sort_by);
1345 $tbl->setOrderDirection($this->requested_sort_order);
1346 $tbl->setOffset($this->requested_offset);
1347 $tbl->setMaxCount(count($members));
1348 $tbl->setFooter(
"tblfooter", $this->
lng->txt(
"previous"), $this->lng->txt(
"next"));
1350 $sliced_users = array_slice($members, $this->requested_offset,
ilSession::get(
"tbl_limit"));
1351 $tbl->disable(
'sort');
1355 foreach ($sliced_users as
$user_id) {
1356 foreach ($events as $event_obj) {
1357 $this->tpl->setCurrentBlock(
"eventcols");
1367 $this->lng->txt(
'event_participated') :
1368 $this->lng->txt(
'event_not_participated'));
1371 $this->tpl->parseCurrentBlock();
1374 $this->tpl->setCurrentBlock(
"tbl_content");
1376 $this->tpl->setVariable(
"LASTNAME", $name[
'lastname']);
1377 $this->tpl->setVariable(
"FIRSTNAME", $name[
'firstname']);
1379 $this->tpl->parseCurrentBlock();
1382 $this->tpl->setVariable(
"HEAD_TXT_LEGEND", $this->
lng->txt(
"legend"));
1383 $this->tpl->setVariable(
"HEAD_TXT_DIGIT", $this->
lng->txt(
"event_digit"));
1384 $this->tpl->setVariable(
"HEAD_TXT_EVENT", $this->
lng->txt(
"event"));
1385 $this->tpl->setVariable(
"HEAD_TXT_LOCATION", $this->
lng->txt(
"event_location"));
1386 $this->tpl->setVariable(
"HEAD_TXT_DATE_TIME", $this->
lng->txt(
"event_date_time"));
1388 foreach ($events as $event_obj) {
1389 $this->tpl->setCurrentBlock(
"legend_loop");
1390 $this->tpl->setVariable(
"LEGEND_DIGIT", $i++);
1391 $this->tpl->setVariable(
"LEGEND_EVENT_TITLE", $event_obj->getTitle());
1392 $this->tpl->setVariable(
"LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
1393 $this->tpl->setVariable(
"LEGEND_EVENT_LOCATION", $event_obj->getLocation());
1394 $this->tpl->setVariable(
"LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
1395 $this->tpl->parseCurrentBlock();
1399 protected function __showButton(
string $cmd,
string $text,
string $target =
''): void
1401 $this->
toolbar->addButton($text, $this->
ctrl->getLinkTarget($this, $cmd), $target);
1411 $this->
lng->loadLanguageModule(
'dateplaner');
1415 $this->
form =
new ilPropertyFormGUI();
1416 $this->
form->setMultipart(
true);
1417 $this->
form->setTableWidth(
'600px');
1418 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1419 $this->
form->setMultipart(
true);
1423 $this->
lng->loadLanguageModule(
'dateplaner');
1425 $dur->setRequired(
true);
1426 $dur->enableToggleFullTime(
1427 $this->
lng->txt(
'event_fulltime_info'),
1428 $this->object->getFirstAppointment()->enabledFulltime()
1430 $dur->setShowTime(
true);
1431 $dur->setStart($this->
object->getFirstAppointment()->getStart());
1432 $dur->setEnd($this->
object->getFirstAppointment()->getEnd());
1434 $this->
form->addItem($dur);
1438 if ($a_mode ==
'create') {
1439 if (!is_object($this->rec)) {
1443 $rec->allowUnlimitedRecurrences(
false);
1445 $this->
form->addItem($rec);
1449 $lp->setInfo($this->
lng->txt(
"sess_lp_preset_info"));
1450 $lp->setChecked(
true);
1451 $this->
form->addItem($lp);
1455 $section->setTitle($this->
lng->txt(
'event_section_information'));
1456 $this->
form->addItem($section);
1460 $title->setRequired(
true);
1461 $title->setValue($this->
object->getTitle());
1462 $title->setSize(50);
1463 $title->setMaxLength(70);
1464 $this->
form->addItem($title);
1468 $desc->setValue($this->
object->getLongDescription());
1471 $this->
form->addItem($desc);
1475 $desc->setValue($this->
object->getLocation());
1478 $this->
form->addItem($desc);
1482 $details->setValue($this->
object->getDetails());
1483 $details->setCols(50);
1484 $details->setRows(4);
1485 $this->
form->addItem($details);
1487 if ($a_mode ==
'create') {
1492 $this->record_gui->setRefId($this->requested_ref_id);
1493 $this->record_gui->setPropertyForm($this->
form);
1494 $this->record_gui->parse();
1501 $this->record_gui->setPropertyForm($this->
form);
1502 $this->record_gui->parse();
1508 $section->setTitle($this->
lng->txt(
'event_tutor_data'));
1509 $this->
form->addItem($section);
1513 $tutor_name->setValue($this->
object->getName());
1514 $tutor_name->setSize(20);
1515 $tutor_name->setMaxLength(70);
1516 $this->
form->addItem($tutor_name);
1519 $tutor_email =
new ilTextInputGUI($this->
lng->txt(
'tutor_email'),
'tutor_email');
1520 $tutor_email->setValue($this->
object->getEmail());
1521 $tutor_email->setSize(20);
1522 $tutor_email->setMaxLength(70);
1523 $this->
form->addItem($tutor_email);
1526 $tutor_phone =
new ilTextInputGUI($this->
lng->txt(
'tutor_phone'),
'tutor_phone');
1527 $tutor_phone->setValue($this->
object->getPhone());
1528 $tutor_phone->setSize(20);
1529 $tutor_phone->setMaxLength(70);
1530 $this->
form->addItem($tutor_phone);
1533 $section->setTitle($this->
lng->txt(
'sess_section_reg'));
1534 $this->
form->addItem($section);
1547 $reg_settings->addMembershipFormElements($this->
form,
'');
1551 $section->setTitle($this->
lng->txt(
'event_assign_files'));
1552 $this->
form->addItem($section);
1555 $files->setFilenames(array(0 =>
''));
1556 $this->
form->addItem($files);
1559 $section->setTitle($this->
lng->txt(
'sess_setting_header_presentation'));
1560 $this->
form->addItem($section);
1565 $features->setTitle($this->
lng->txt(
'obj_features'));
1566 $this->
form->addItem($features);
1576 $gallery->setChecked($this->
object->getShowMembers());
1577 $gallery->setInfo($this->
lng->txt(
'sess_show_participants_info'));
1578 $this->
form->addItem($gallery);
1583 $mail_type->setValue((
string) $this->
object->getMailToMembersType());
1586 $this->
lng->txt(
'sess_mail_admins_only'),
1588 $this->lng->txt(
'sess_mail_admins_only_info')
1590 $mail_type->addOption($mail_tutors);
1593 $this->
lng->txt(
'sess_mail_all'),
1595 $this->lng->txt(
'sess_mail_all_info')
1597 $mail_type->addOption($mail_all);
1598 $this->
form->addItem($mail_type);
1604 $this->
form->setTitle($this->
lng->txt(
'event_table_create'));
1606 $this->
form->addCommandButton(
'save', $this->
lng->txt(
'event_btn_add'));
1607 $this->
form->addCommandButton(
'saveAndAssignMaterials', $this->
lng->txt(
'event_btn_add_edit'));
1608 $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
1613 $this->
form->setTitle($this->
lng->txt(
'event_table_update'));
1615 $this->
form->addCommandButton(
'update', $this->
lng->txt(
'save'));
1616 $this->
form->addCommandButton(
'cancelEdit', $this->
lng->txt(
'cancel'));
1625 $event = $this->
form->getItemByPostVar(
'event');
1626 if ($event->getStart() &&
$event->getEnd()) {
1627 $this->
object->getFirstAppointment()->setStartingTime($event->getStart()->get(
IL_CAL_UNIX));
1628 $this->
object->getFirstAppointment()->setEndingTime($event->getStart()->get(
IL_CAL_UNIX));
1629 $this->
object->getFirstAppointment()->setStart($event->getStart());
1630 $this->
object->getFirstAppointment()->setEnd($event->getEnd());
1631 $this->
object->getFirstAppointment()->toggleFulltime($event->getStart() instanceof
ilDate);
1634 $this->
object->setTitle($this->
form->getInput(
'title'));
1635 $this->
object->setDescription($this->
form->getInput(
'desc'));
1636 $this->
object->setLocation($this->
form->getInput(
'location'));
1637 $this->
object->setName($this->
form->getInput(
'tutor_name'));
1638 $this->
object->setPhone($this->
form->getInput(
'tutor_phone'));
1639 $this->
object->setEmail($this->
form->getInput(
'tutor_email'));
1640 $this->
object->setDetails($this->
form->getInput(
'details'));
1642 $this->
object->setRegistrationNotificationEnabled((
bool) $this->
form->getInput(
'registration_notification'));
1643 $this->
object->setRegistrationNotificationOption($this->
form->getInput(
'notification_option'));
1645 $this->
object->setRegistrationType((
int) $this->
form->getInput(
'registration_type'));
1647 switch ($this->
object->getRegistrationType()) {
1649 $this->
object->enableCannotParticipateOption((
bool) $this->
form->getInput(
'show_cannot_participate_direct'));
1652 $this->
object->enableCannotParticipateOption((
bool) $this->
form->getInput(
'show_cannot_participate_request'));
1655 $this->
object->enableCannotParticipateOption(
false);
1660 $this->
object->setRegistrationMaxUsers((
int) $this->
form->getInput(
'registration_max_members'));
1661 $this->
object->enableRegistrationUserLimit((
int) $this->
form->getInput(
'registration_membership_limited'));
1662 $this->
object->setShowMembers((
bool) $this->
form->getInput(
'show_members'));
1663 $this->
object->setMailToMembersType((
int) $this->
form->getInput(
'mail_type'));
1665 switch ((
int) $this->
form->getInput(
'waiting_list')) {
1667 $this->
object->enableRegistrationWaitingList(
true);
1668 $this->
object->setWaitingListAutoFill(
true);
1672 $this->
object->enableRegistrationWaitingList(
true);
1673 $this->
object->setWaitingListAutoFill(
false);
1677 $this->
object->enableRegistrationWaitingList(
false);
1678 $this->
object->setWaitingListAutoFill(
false);
1687 switch ($this->
form->getInput(
'frequence')) {
1689 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1690 $this->rec->setInterval((
int) $this->
form->getInput(
'count_DAILY'));
1694 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1695 $this->rec->setInterval((
int) $this->
form->getInput(
'count_WEEKLY'));
1696 if (is_array($this->
form->getInput(
'byday_WEEKLY'))) {
1702 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1703 $this->rec->setInterval((
int) $this->
form->getInput(
'count_MONTHLY'));
1704 switch ((
int) $this->
form->getInput(
'subtype_MONTHLY')) {
1710 switch ((
int) $this->
form->getInput(
'monthly_byday_day')) {
1713 $this->rec->setBYSETPOS($this->
form->getInput(
'monthly_byday_num'));
1714 $this->rec->setBYDAY(
'MO,TU,WE,TH,FR');
1719 $this->rec->setBYMONTHDAY($this->
form->getInput(
'monthly_byday_num'));
1723 $this->rec->setBYDAY(($this->
form->getInput(
'monthly_byday_num') . $this->form->getInput(
'monthly_byday_day')));
1729 $this->rec->setBYMONTHDAY($this->
form->getInput(
'monthly_bymonthday'));
1735 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1736 $this->rec->setInterval((
int) $this->
form->getInput(
'count_YEARLY'));
1737 switch ((
int) $this->
form->getInput(
'subtype_YEARLY')) {
1743 $this->rec->setBYMONTH($this->
form->getInput(
'yearly_bymonth_byday'));
1744 $this->rec->setBYDAY(($this->
form->getInput(
'yearly_byday_num') . $this->form->getInput(
'yearly_byday')));
1748 $this->rec->setBYMONTH($this->
form->getInput(
'yearly_bymonth_by_monthday'));
1749 $this->rec->setBYMONTHDAY($this->
form->getInput(
'yearly_bymonthday'));
1756 switch ((
int) $this->
form->getInput(
'until_type')) {
1758 $this->rec->setFrequenceUntilDate(
null);
1763 $this->rec->setFrequenceUntilDate(
null);
1764 $this->rec->setFrequenceUntilCount((
int) $this->
form->getInput(
'count'));
1768 $frequence = $this->
form->getItemByPostVar(
'frequence');
1769 $end = $frequence->getRecurrence()->getFrequenceUntilDate();
1770 $this->rec->setFrequenceUntilCount(0);
1771 $this->rec->setFrequenceUntilDate($end);
1778 return mktime($time[
'h'], $time[
'm'], 0, $date[
'm'], $date[
'd'], $date[
'y']);
1787 $title = strlen($this->
object->getTitle()) ? (
': ' . $this->
object->getTitle()) :
'';
1788 $title = $this->
object->getFirstAppointment()->appointmentToString() . $title;
1806 $parent_class =
'ilObj' . $parent_class .
'GUI';
1821 $ilHelp->setScreenIdComponent(
"sess");
1828 $this->tabs_gui->setBackTarget(
1829 $this->
lng->txt(
'back_to_' . $parent_type .
'_content'),
1830 $ilCtrl->getLinkTarget($this,
"redirectToParentContentPage")
1833 $this->tabs_gui->addTarget(
1835 $this->
ctrl->getLinkTarget($this,
'infoScreen')
1838 if ($ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
1839 $this->tabs_gui->addTarget(
1841 $this->
ctrl->getLinkTarget($this,
'edit')
1844 if ($ilAccess->checkAccess(
'manage_materials',
'', $this->object->getRefId())) {
1845 $this->tabs_gui->addTab(
1847 $this->
lng->txt(
'crs_materials'),
1848 $this->ctrl->getLinkTarget($this,
'materials')
1859 $this->tabs_gui->addTarget(
1860 "obj_tool_setting_booking",
1861 $this->
ctrl->getLinkTargetByClass(array(
"ilbookinggatewaygui"),
"")
1866 $is_participant = $this->
object->getMembersObject()->isAssigned($ilUser->getId());
1868 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
1873 $this->tabs_gui->addTarget(
1874 'learning_progress',
1875 $this->
ctrl->getLinkTargetByClass(array(
'ilobjsessiongui',
'illearningprogressgui'),
''),
1877 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
1882 if ($ilAccess->checkAccess(
'edit_metadata',
'', $this->ref_id)) {
1884 $mdtab = $mdgui->getTab();
1886 $this->tabs_gui->addTab(
1888 $this->
lng->txt(
'meta_data'),
1895 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1896 $this->tabs_gui->addTarget(
1898 $this->
ctrl->getLinkTargetByClass(
"ilexportgui",
""),
1906 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
1907 $this->tabs_gui->addTarget(
1909 $this->
ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm"),
1910 array(
"perm",
"info",
"owner"),
1933 foreach ($a_usr_ids as $usr_id) {
1934 $tmp_data[$usr_id] = [];
1941 if (!$this->container_ref_id) {
1954 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $parent_id);
1956 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1965 foreach ($local_roles as $role_id) {
1967 if (substr($title, 0, 19) ==
'il_sess_participant') {
1986 $link = chr(13) . chr(10) . chr(13) . chr(10);
1987 $link .= $this->
lng->txt(
'sess_mail_permanent_link');
1988 $link .= chr(13) . chr(10) . chr(13) . chr(10);
1989 $link .= ilLink::_getLink($this->
object->getRefId());
1990 return rawurlencode(base64_encode($link));
Render add new item selector.
GUI class for public user profile presentation.
importEditFormPostValues()
Load edit form values from post.
Base class for attendance lists.
This class is used for integration of the booking manager as a service into other repository objects,...
Calculates an ilDateList for a given calendar entry and recurrence rule.
const string FREQ_MONTHLY
setRecurrence(int $a_type)
set type of recurrence @access public
static _recordReadEvent(string $a_type, int $a_ref_id, int $obj_id, int $usr_id, bool $isCatchupWriteEvents=true, $a_ext_rc=null, $a_ext_time=null)
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getInstance(int $a_obj_id)
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)
static _getInstanceByObjId(int $a_obj_id)
Class ilCtrl provides processing control methods.
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
@inheritDoc
setParameterByClass(string $a_class, string $a_parameter, $a_value)
@inheritDoc
static setUseRelativeDates(bool $a_status)
set use relative dates
static formatPeriod(ilDateTime $start, ilDateTime $end, bool $a_skip_starting_day=false, ?ilObjUser $user=null)
Format a period of two dates Shows: 14.
static lookupTemplateId(int $a_ref_id)
static switchTemplate(int $a_ref_id, int $a_new_tpl_id)
Error Handling & global info handling.
addItem(int $a_item_ref_id)
class ilEventParticipants
static _isRegistered(int $a_usr_id, int $a_event_id)
getRegisteredParticipants()
static _unregister(int $a_usr_id, int $a_event_id)
updateExcusedForUser(int $a_usr_id, bool $a_status)
hasParticipated(int $a_usr_id)
static _register(int $a_usr_id, int $a_event_id)
Export User Interface Class.
static _getInstanceByObjId(int $a_obj_id)
Get singleton instance.
const LP_MODE_DEACTIVATED
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
Class ilObjUserTrackingGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const REGISTRATION_LIMITED_USERS
static _modifyItemGUI(ilObjectListGUI $a_item_list_gui, string $a_cmd_class, array $a_item_data, bool $a_abo_status, int $a_course_ref_id, int $a_course_obj_id, int $a_parent_ref_id=0)
__toUnix(array $date, array $time)
initContainer(bool $a_init_participants=false)
refuseParticipationObject()
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
initCreateForm($new_type)
getTabs()
@abstract overwrite in derived GUI class of your object type
unregisterObject(bool $a_refuse_participation=false)
ilObjectService $object_service
saveObject(bool $a_redirect_on_success=true)
showJoinRequestButtonInCalendar(ilToolbarGUI $a_ilToolbar)
show join request This method is only needed to keep showJoinRequestButton method protected.
readMemberData(array $a_usr_ids)
Used for waiting list.
__showButton(string $cmd, string $text, string $target='')
ilAdvancedMDRecordGUI $record_gui
ilGlobalTemplateInterface $tpl
ILIAS Refinery Factory $refinery
ILIAS FileUpload FileUpload $upload
ilEventParticipants $event_part
redirectToParentContentPageObject()
createRecurringSessions(bool $a_activate_lp=true)
updateObject()
updates object entry in object_data
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
updateSessionTypeObject()
change session type
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data, bool $a_show_path)
prepareOutput(bool $show_sub_objects=true)
ilEventItems $event_items
saveAndAssignMaterialsObject()
printAttendanceListObject()
string $requested_sort_by
afterSaveCallback(ilObject $a_obj)
Custom callback after object is created (in parent container)
showJoinRequestButton(?ilToolbarGUI $ilToolbar=null)
static _goto(string $a_target)
string $requested_sort_order
getAttendanceListUserData(int $a_user_id, array $a_filters)
ilObjectDefinition $objDefinition
getCreatableObjectTypes()
postUpdateMaterials()
redirect to list of materials without offset/page.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
static _lookupName(int $a_user_id)
static _lookupLogin(int $a_user_id)
static getItemsByEvent(int $event_id)
Get session material / event items.
static addListGUIActivationProperty(ilObjectListGUI $list_gui, array &$item)
Get timing details for list gui.
GUI class for the workflow of copying objects.
parses the objects.xml it handles the xml-description of all ilias objects
getClassName(string $obj_name)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObjectGUI Basic methods of all Output classes.
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
ilRbacReview $rbac_review
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
initDidacticTemplate(ilPropertyFormGUI $form)
addHeaderAction()
Add header action menu.
createObject()
create new object form
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
redirectToRefId(int $ref_id, string $cmd="")
redirects to (repository) view per ref id usually to a container and usually used at the end of a sav...
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
Class ilObject Basic functions for all objects.
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
static getInstance(int $a_ref_id)
This class represents an option in a radio group.
class ilRbacReview Contains Review functions of core Rbac.
getRolesOfRoleFolder(int $a_ref_id, bool $a_nonassignable=true)
get all roles of a role folder including linked local roles that are created due to stopped inheritan...
static resetCaches()
Reset internal caches.
GUI class for membership features.
static factory(string $a_type)
Get list gui by type This method caches all the returned list guis.
static getInstance(int $a_ref_id)
static get(string $a_var)
static set(string $a_var, $a_val)
Set a value.
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...
This class represents a text area property in a property form.
This class represents a text property in a property form.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
getSubTree(array $a_node, bool $a_with_data=true, array $a_type=[])
get all nodes in the subtree under specified node
checkForParentType(int $a_ref_id, string $a_type, bool $a_exclude_source_check=false)
Check for parent type e.g check if a folder (ref_id 3) is in a parent course obj => checkForParentTyp...
getParentId(int $a_node_id)
get parent id of given node
static makeClickable(string $a_text, bool $detectGotoLinks=false, ?string $ilias_http_path=null)
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 stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static _sortIds(array $a_ids, string $a_table, string $a_field, string $a_id_name)
Function that sorts ids by a given table field using WHERE IN E.g: __sort(array(6,...
static deleteUserEntry(int $a_usr_id, int $a_obj_id)
static _isOnList(int $a_usr_id, int $a_obj_id)
static initDomEvent(?ilGlobalTemplateInterface $a_main_tpl=null)
Init YUI DomEvent used in Services/Calendar, Modules/Session, Modules/Test (Jan 2022)
const MESSAGE_TYPE_FAILURE
setContent(string $a_html)
Sets content for standard template.
Interface ilAccessHandler This interface combines all available interfaces which can be called via gl...
checkAccessOfUser(int $a_user_id, string $a_permission, string $a_cmd, int $a_ref_id, string $a_type="", ?int $a_obj_id=null, ?int $a_tree_id=null)
check access for an object (provide $a_type and $a_obj_id if available for better performance)
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
form( $class_path, string $cmd, string $submit_caption="")