19 declare(strict_types=1);
34 protected \ILIAS\DI\UIServices
$ui;
36 protected \ILIAS\FileUpload\FileUpload
$upload;
38 protected \ILIAS\HTTP\Services
$http;
70 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
74 $this->
ctrl = $DIC->ctrl();
75 $this->
lng = $DIC->language();
76 $this->tpl = $DIC->ui()->mainTemplate();
77 $this->
user = $DIC->user();
78 $this->tree = $DIC->repositoryTree();
79 $this->
access = $DIC->access();
80 $this->
toolbar = $DIC->toolbar();
81 $this->ilErr = $DIC[
"ilErr"];
82 $this->object_service = $DIC->object();
83 $this->objDefinition = $DIC[
'objDefinition'];
84 $this->tabs_gui = $DIC->tabs();
85 $this->
locator = $DIC[
"ilLocator"];
86 $this->rbacreview = $DIC->rbac()->review();
87 $this->
event = $DIC->event();
88 $this->
upload = $DIC->upload();
89 $this->
help = $DIC->help();
90 $this->
http = $DIC->http();
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(
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":
255 $parent_id = $tree->
getParentId($this->requested_ref_id);
257 $this->tabs_gui->activateTab(
'obj_tool_setting_booking');
259 $this->
ctrl->forwardCommand($gui);
263 if ($cmd ==
"applyFilter") {
265 } elseif ($cmd ==
"resetFilter") {
287 $this->
ctrl->redirectByClass(
'ilSessionMembershipGUI',
'participants');
302 parent::prepareOutput($show_sub_objects);
305 $title = strlen($this->
object->getTitle()) ? (
': ' . $this->
object->getTitle()) :
'';
307 $this->tpl->setTitle(
308 $this->
object->getFirstAppointment()->appointmentToString() . $title
327 $this->getCurrentObject()->isRegistrationUserLimitEnabled() &&
328 $this->getCurrentObject()->getRegistrationMaxUsers() &&
331 if (!$this->getCurrentObject()->isRegistrationWaitingListEnabled()) {
332 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'sess_reg_max_users_exceeded'),
true);
333 $this->
ctrl->redirect($this,
'infoScreen');
336 $wait->addToList($ilUser->getId());
337 $this->
ctrl->redirect($this,
'infoScreen');
341 switch ($this->getCurrentObject()->getRegistrationType()) {
343 $this->
ctrl->redirect($this,
'info');
347 $part->register($ilUser->getId());
348 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_registered'),
true);
350 $ilAppEventHandler->raise(
354 'obj_id' => $this->getCurrentObject()->
getId(),
355 'ref_id' => $this->getCurrentObject()->
getRefId(),
356 'usr_id' => $ilUser->getId()
360 $this->
ctrl->redirect($this,
'infoScreen');
364 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'sess_registered_confirm'),
true);
365 $part->addSubscriber($ilUser->getId());
367 $ilAppEventHandler->raise(
371 'obj_id' => $this->getCurrentObject()->
getId(),
372 'ref_id' => $this->getCurrentObject()->
getRefId(),
373 'usr_id' => $ilUser->getId()
377 $this->
ctrl->redirect($this,
'infoScreen');
388 if ($ilUser->isAnonymous()) {
389 $this->
ctrl->redirect($this,
'infoScreen');
395 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_unregistered'),
true);
398 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_registered'),
true);
401 $this->
ctrl->redirect($this,
'infoScreen');
412 if ($part->isSubscriber($ilUser->getId())) {
413 $part->deleteSubscriber($ilUser->getId());
416 $part->unregister($ilUser->getId());
418 if ($a_refuse_participation) {
419 $event_part = new \ilEventParticipants($this->
object->getId());
432 $this->
object->getRefId()
440 $ilAppEventHandler->raise(
444 'obj_id' => $this->getCurrentObject()->
getId(),
445 'ref_id' => $this->getCurrentObject()->
getRefId(),
446 'usr_id' => $ilUser->getId()
449 if ($a_refuse_participation) {
450 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_participation_refused_info'),
true);
452 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_unregistered'),
true);
454 $this->
ctrl->returnToParent($this);
457 public static function _goto(
string $a_target): void
460 $main_tpl = $DIC->ui()->mainTemplate();
462 $ilAccess = $DIC->access();
463 $lng = $DIC->language();
465 $ilCtrl = $DIC->ctrl();
466 $parts = explode(
'_', $a_target);
469 if ($ilAccess->checkAccess(
'write',
'', $a_target)) {
471 $ilCtrl->setTargetScript(
'ilias.php');
472 $ilCtrl->setParameterByClass(
'ilSessionMembershipGUI',
'ref_id', $a_target);
473 $ilCtrl->setTargetScript(
'ilias.php');
474 $ilCtrl->redirectByClass(array(
'ilRepositoryGUI', __CLASS__,
'ilSessionMembershipGUI'));
478 if ($ilAccess->checkAccess(
'visible',
"", $a_target)) {
481 $main_tpl->setOnScreenMessage(
'failure', sprintf(
482 $lng->
txt(
"msg_no_perm_read_item"),
496 $this->
ctrl->setCmd(
"showSummary");
497 $this->
ctrl->setCmdClass(
"ilinfoscreengui");
545 if (!$this->getCurrentObject()->enabledRegistrationForUsers() || $ilUser->isAnonymous()) {
551 $this->
ctrl->setParameter($this,
"ref_id", $this->getCurrentObject()->
getRefId());
554 if ($this->
object->isCannotParticipateOptionEnabled()) {
555 $btn_excused = $this->
ui->factory()->button()->standard(
556 $this->
lng->txt(
'sess_bt_refuse'),
557 $this->
ctrl->getLinkTarget($this,
'refuseParticipation')
563 if (!is_null($btn_excused)) {
564 $ilToolbar->addComponent($btn_excused);
567 } elseif ($part->isSubscriber($ilUser->getId())) {
568 if (!is_null($btn_excused)) {
569 $ilToolbar->addComponent($btn_excused);
573 if (!is_null($btn_excused)) {
574 $ilToolbar->addComponent($btn_excused);
582 $this->getCurrentObject()->isRegistrationUserLimitEnabled() &&
583 $this->getCurrentObject()->getRegistrationMaxUsers() &&
586 if ($this->getCurrentObject()->isRegistrationWaitingListEnabled()) {
587 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_reg_max_users_exceeded_wl'));
588 $btn_attend = $this->
ui->factory()->button()->primary(
589 $this->
lng->txt(
"mem_add_to_wl"),
590 $this->
ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
592 $ilToolbar->addComponent($btn_attend);
593 if (!$event_part->
isExcused($ilUser->getId()) && !is_null($btn_excused)) {
594 $ilToolbar->addComponent($btn_excused);
597 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_reg_max_users_exceeded'));
601 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'sess_join_info'));
602 $btn_attend = $this->
ui->factory()->button()->primary(
603 $this->
lng->txt(
"join_session"),
604 $this->
ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
606 $ilToolbar->addComponent($btn_attend);
607 if (!$event_part->
isExcused($ilUser->getId()) && !is_null($btn_excused)) {
608 $ilToolbar->addComponent($btn_excused);
615 protected function infoScreen():
void 622 $this->tabs_gui->setTabActive(
'info_short');
627 $info->enableBookingInfo(
true);
641 foreach ($eventItems as $item) {
646 $list_gui->setContainerObject($this);
650 $html .= $list_gui->getListItemHTML(
651 (
int) $item[
'ref_id'],
652 (
int) $item[
'obj_id'],
653 (
string) $item[
'title'],
654 (
string) $item[
'description']
659 $info->addSection($this->
lng->txt(
'event_materials'));
669 if (strlen($this->
object->getLocation()) || strlen($this->
object->getDetails())) {
670 $info->addSection($this->
lng->txt(
'event_section_information'));
674 $this->
lng->txt(
'event_location'),
678 if (strlen($this->
object->getDetails())) {
680 $this->
lng->txt(
'event_details_workflow'),
687 $this->record_gui->parse();
690 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
694 if ($this->
object->hasTutorSettings()) {
695 $info->addSection($this->
lng->txt(
'event_tutor_data'));
696 if (strlen($fullname = $this->
object->getName())) {
698 $this->
lng->txt(
'event_lecturer'),
702 if (strlen($email = $this->
object->getEmail())) {
704 $this->
lng->txt(
'tutor_email'),
708 if (strlen($phone = $this->
object->getPhone())) {
710 $this->
lng->txt(
'tutor_phone'),
718 $contacts =
$parts->getContacts();
719 if (count($contacts) > 0) {
720 $info->addSection($this->
lng->txt(
"crs_mem_contacts"));
721 foreach ($contacts as $contact) {
723 $pgui->setBackUrl($this->
ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
724 $pgui->setEmbedded(
true);
725 $info->addProperty(
"", $pgui->getHTML());
730 $this->
ctrl->forwardCommand($info);
735 $this->
object->getRefId(),
736 $this->
object->getId(),
743 if (!is_object($this->
object)) {
757 $this->
ctrl->setParameter($this,
'ref_id', $this->
object->getRefId());
758 $this->
ctrl->setParameter($this,
'new_type',
'');
759 $this->
ctrl->redirect($this,
'materials');
762 public function saveObject(
bool $a_redirect_on_success =
true): void
770 $this->
ctrl->saveParameter($this,
"new_type");
773 $this->ilErr->setMessage(
'');
774 if (!$this->
form->checkInput()) {
775 $this->tpl->setOnScreenMessage(
777 $this->
lng->txt(
'err_check_input')
779 $this->
form->setValuesByPost();
786 $this->ilErr->setMessage($this->
lng->txt(
'err_check_input'));
792 $this->
object->validate();
793 $this->
object->getFirstAppointment()->validate();
795 if (strlen($this->ilErr->getMessage())) {
796 $this->tpl->setOnScreenMessage(
'failure', $this->ilErr->getMessage());
797 $this->
form->setValuesByPost();
801 $this->
object->create();
802 $this->
object->createReference();
803 $this->
object->putInTree($this->requested_ref_id);
804 $this->
object->setPermissions($this->requested_ref_id);
814 $this->record_gui->writeEditForm($this->
object->getId());
821 $this->
object->applyDidacticTemplate($dtpl);
825 if (!$this->
form->getInput(
"lp_preset")) {
828 $lp_obj_settings->update(
false);
832 $this->
object->getFirstAppointment()->setSessionId($this->
object->getId());
833 $this->
object->getFirstAppointment()->create();
837 $object_service->
commonSettings()->legacyForm($this->
form, $this->
object)->saveTileImage();
841 if ($a_redirect_on_success) {
842 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'event_add_new_event'),
true);
843 $this->
ctrl->returnToParent($this);
856 if (!isset($_FILES[
'files'][
'name'][$counter])) {
859 if (!strlen($_FILES[
'files'][
'name'][$counter])) {
866 $file->setDescription(
'');
869 $new_ref_id = $file->createReference();
870 $file->putInTree($tree->
getParentId($this->object->getRefId()));
871 $file->setPermissions($tree->
getParentId($this->object->getRefId()));
874 if (!$upload->hasBeenProcessed()) {
877 $file->getUploadFile(
878 $_FILES[
'files'][
'tmp_name'][$counter],
879 $_FILES[
'files'][
'name'][$counter]
882 $items[] = $new_ref_id;
894 if (!$this->rec->getFrequenceType()) {
899 $period_start = clone $this->
object->getFirstAppointment()->getStart();
902 $period_end = clone $this->
object->getFirstAppointment()->getStart();
906 $period_diff = $this->
object->getFirstAppointment()->getEnd()->get(
IL_CAL_UNIX) -
907 $this->
object->getFirstAppointment()->getStart()->get(
IL_CAL_UNIX);
914 foreach ($date_list->get() as $date) {
919 $new_obj = $this->
object->cloneObject($parent_id);
924 $new_obj->applyDidacticTemplate($dtpl);
928 $new_obj->getFirstAppointment()->setStartingTime($date->get(
IL_CAL_UNIX));
929 $new_obj->getFirstAppointment()->setEndingTime($date->get(
IL_CAL_UNIX) + $period_diff);
930 $new_obj->getFirstAppointment()->update();
934 if (!$a_activate_lp) {
937 $lp_obj_settings->update(
false);
951 $this->tabs_gui->setTabActive(
'settings');
954 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_edit.html',
'Modules/Session');
955 $this->tpl->setVariable(
'EVENT_EDIT_TABLE', $this->
form->getHTML());
963 $old_autofill = $this->
object->hasWaitingListAutoFill();
966 $this->ilErr->setMessage(
'');
967 if (!$this->
form->checkInput()) {
968 $this->tpl->setOnScreenMessage(
970 $this->
lng->txt(
'err_check_input')
972 $this->
form->setValuesByPost();
981 $new_type_info = $this->
form->getInput(
'didactic_type');
982 if ($new_type_info) {
983 $new_type = explode(
'_', $this->
form->getInput(
'didactic_type'));
984 $new_type = (
int) $new_type[1];
986 $modified = ($new_type !== $old_type);
993 $this->tpl->setOnScreenMessage(
995 $this->
lng->txt(
'err_check_input')
997 $this->
form->setValuesByPost();
1003 $this->
object->validate();
1004 $this->
object->getFirstAppointment()->validate();
1006 if (strlen($this->ilErr->getMessage())) {
1007 $this->tpl->setOnScreenMessage(
'failure', $this->ilErr->getMessage());
1011 $this->
object->update();
1012 $this->
object->getFirstAppointment()->update();
1022 $this->record_gui->writeEditForm();
1026 $object_service->
commonSettings()->legacyForm($this->
form, $this->
object)->saveTileImage();
1029 if (!$old_autofill &&
1030 $this->
object->hasWaitingListAutoFill()) {
1031 $this->
object->handleAutoFill();
1036 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'event_updated'),
true);
1037 $this->
ctrl->redirect($this,
'edit');
1041 if ($new_type == 0) {
1042 $new_type_txt = $this->
lng->txt(
'il_sess_status_open');
1045 $new_type_txt = $dtpl->getPresentationTitle($this->
lng->getLangKey());
1047 $this->tabs_gui->activateTab(
'settings');
1050 $confirm->setFormAction($this->
ctrl->getFormAction($this));
1051 $confirm->setHeaderText($this->
lng->txt(
'sess_warn_sess_type_changed'));
1055 $this->
lng->txt(
'sess_info_new_sess_type') .
': ' . $new_type_txt
1057 $confirm->setConfirm($this->
lng->txt(
'sess_change_type'),
'updateSessionType');
1058 $confirm->setCancel($this->
lng->txt(
'cancel'),
'edit');
1060 $this->tpl->setContent($confirm->getHTML());
1070 $this->
object->getRefId(),
1071 (
int) $this->
http->request()->getParsedBody()[
'sess_type']
1074 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
1075 $this->
ctrl->redirect($this,
'edit');
1085 $is_course = $is_group =
false;
1089 if ($this->container_ref_id) {
1092 if (!$this->container_ref_id) {
1094 if ($this->container_ref_id) {
1098 if (!$this->container_ref_id) {
1099 $this->tpl->setOnScreenMessage(
'failure',
'No container object found. Aborting');
1104 if ($a_init_participants && $this->container_obj_id) {
1107 } elseif ($is_group) {
1121 $this->tabs_gui->activateTab(
'materials');
1127 $gui->setDisabledObjectTypes(
1135 $gui->setAfterCreationCallback($this->ref_id);
1142 $tbl->setDisableFilterHiding(
true);
1144 $tbl->addMultiCommand(
'saveMaterials', $this->
lng->txt(
'sess_assign'));
1145 $tbl->addMultiCommand(
"removeMaterials", $this->
lng->txt(
"remove"));
1147 $tbl->setTitle($this->
lng->txt(
"event_assign_materials_table"));
1148 $tbl->setDescription($this->
lng->txt(
'event_assign_materials_info'));
1150 $tbl->setMaterialItems($this->event_items->getItems());
1152 $data = $tbl->getDataFromDb();
1153 $tbl->setMaterials(
$data);
1155 $this->tpl->setContent($tbl->getHTML());
1161 $tbl->writeFilterToSession();
1162 $tbl->resetOffset();
1163 $this->
ctrl->redirect($this,
"materials");
1169 $tbl->resetOffset();
1170 $tbl->resetFilter();
1171 $this->
ctrl->redirect($this,
"materials");
1189 $db_items = $this->event_items->
getItems();
1192 $list_items_checked = array_map(
'intval', $list_items_checked);
1194 $items_to_save = array_merge($db_items, $list_items_checked);
1195 $items_to_save = array_unique($items_to_save);
1197 $this->event_items->setItems($items_to_save);
1198 $this->event_items->update();
1209 $tbl->storeNavParameter();
1211 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
1212 $this->
ctrl->redirect($this,
'materials');
1221 $ilTabs->setTabActive(
'event_edit_members');
1224 $form = $list->initForm(
'printAttendanceList');
1237 $list->setId(
'sessattlst');
1239 $event_app = $this->
object->getFirstAppointment();
1243 $desc .=
" " . $this->
object->getTitle();
1244 $list->setTitle($this->
lng->txt(
'sess_attendance_list'), $desc);
1246 $list->addPreset(
'mark', $this->
lng->txt(
'trac_mark'),
true);
1247 $list->addPreset(
'comment', $this->
lng->txt(
'trac_comment'),
true);
1248 if ($this->
object->enabledRegistration()) {
1249 $list->addPreset(
'registered', $this->
lng->txt(
'event_tbl_registered'),
true);
1251 $list->addPreset(
'participated', $this->
lng->txt(
'event_tbl_participated'),
true);
1252 $list->addBlank($this->
lng->txt(
'sess_signature'));
1254 $list->addUserFilter(
'registered', $this->
lng->txt(
'event_list_registered_only'));
1264 $list->initFromForm();
1265 $list->setCallback(array($this,
'getAttendanceListUserData'));
1268 $list->getFullscreenHTML();
1273 $data = $this->event_part->getUser($a_user_id);
1275 if ($a_filters && $a_filters[
"registered"] && !
$data[
"registered"]) {
1280 $this->
lng->txt(
'yes') :
1281 $this->
lng->txt(
'no');
1282 $data[
'participated'] =
$data[
'participated'] ?
1283 $this->
lng->txt(
'yes') :
1284 $this->
lng->txt(
'no');
1295 if (!$ilAccess->checkAccess(
'manage_members',
'', $this->object->getRefId())) {
1296 $this->ilErr->raiseError($this->
lng->txt(
'msg_no_perm_read'), $this->ilErr->MESSAGE);
1299 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_list.html',
'Modules/Session');
1300 $this->
__showButton($this->
ctrl->getLinkTarget($this,
'exportCSV'), $this->
lng->txt(
'event_csv_export'));
1302 $this->tpl->addBlockFile(
"EVENTS_TABLE",
"events_table",
"tpl.table.html");
1303 $this->tpl->addBlockFile(
'TBL_CONTENT',
'tbl_content',
'tpl.sess_list_row.html',
'Modules/Session');
1306 $members = $members_obj->getParticipants();
1312 $this->
lng->txt(
"event_overview"),
1313 'standard/icon_usr.svg',
1314 $this->
lng->txt(
'obj_usr')
1316 $this->
ctrl->setParameter($this,
'offset', $this->requested_offset);
1322 if (!is_object($tmp_event) || $tmp_event->getType() !=
'sess') {
1325 $events[] = $tmp_event;
1332 $headerNames[] = $this->
lng->txt(
'name');
1333 $headerVars[] =
"name";
1334 $colWidth[] =
'20%';
1336 for ($i = 1; $i <= count($events); $i++) {
1337 $headerNames[] = $i;
1338 $headerVars[] =
"event_" . $i;
1339 $colWidth[] = 80 / count($events) .
"%";
1342 $this->tpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this));
1343 $tbl->setHeaderNames($headerNames);
1344 $tbl->setHeaderVars($headerVars, $this->
ctrl->getParameterArray($this));
1345 $tbl->setColumnWidth($colWidth);
1347 $tbl->setOrderColumn($this->requested_sort_by);
1348 $tbl->setOrderDirection($this->requested_sort_order);
1349 $tbl->setOffset($this->requested_offset);
1350 $tbl->setLimit((
int) $ilUser->getPref(
"hits_per_page"));
1351 $tbl->setMaxCount(count($members));
1352 $tbl->setFooter(
"tblfooter", $this->
lng->txt(
"previous"), $this->
lng->txt(
"next"));
1354 $sliced_users = array_slice($members, $this->requested_offset,
ilSession::get(
"tbl_limit"));
1355 $tbl->disable(
'sort');
1359 foreach ($sliced_users as $user_id) {
1360 foreach ($events as $event_obj) {
1361 $this->tpl->setCurrentBlock(
"eventcols");
1366 $this->tpl->setVariable(
"IMAGE_PARTICIPATED", $event_part->
hasParticipated($user_id) ?
1370 $this->tpl->setVariable(
"PARTICIPATED", $event_part->
hasParticipated($user_id) ?
1371 $this->
lng->txt(
'event_participated') :
1372 $this->
lng->txt(
'event_not_participated'));
1375 $this->tpl->parseCurrentBlock();
1378 $this->tpl->setCurrentBlock(
"tbl_content");
1380 $this->tpl->setVariable(
"LASTNAME", $name[
'lastname']);
1381 $this->tpl->setVariable(
"FIRSTNAME", $name[
'firstname']);
1383 $this->tpl->parseCurrentBlock();
1386 $this->tpl->setVariable(
"HEAD_TXT_LEGEND", $this->
lng->txt(
"legend"));
1387 $this->tpl->setVariable(
"HEAD_TXT_DIGIT", $this->
lng->txt(
"event_digit"));
1388 $this->tpl->setVariable(
"HEAD_TXT_EVENT", $this->
lng->txt(
"event"));
1389 $this->tpl->setVariable(
"HEAD_TXT_LOCATION", $this->
lng->txt(
"event_location"));
1390 $this->tpl->setVariable(
"HEAD_TXT_DATE_TIME", $this->
lng->txt(
"event_date_time"));
1392 foreach ($events as $event_obj) {
1393 $this->tpl->setCurrentBlock(
"legend_loop");
1394 $this->tpl->setVariable(
"LEGEND_DIGIT", $i++);
1395 $this->tpl->setVariable(
"LEGEND_EVENT_TITLE", $event_obj->getTitle());
1396 $this->tpl->setVariable(
"LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
1397 $this->tpl->setVariable(
"LEGEND_EVENT_LOCATION", $event_obj->getLocation());
1398 $this->tpl->setVariable(
"LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
1399 $this->tpl->parseCurrentBlock();
1403 protected function __showButton(
string $cmd,
string $text,
string $target =
''): void
1405 $this->
toolbar->addButton($text, $this->
ctrl->getLinkTarget($this, $cmd), $target);
1415 $this->
lng->loadLanguageModule(
'dateplaner');
1419 $this->
form =
new ilPropertyFormGUI();
1420 $this->
form->setMultipart(
true);
1421 $this->
form->setTableWidth(
'600px');
1422 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1423 $this->
form->setMultipart(
true);
1427 $this->
lng->loadLanguageModule(
'dateplaner');
1429 $dur->setRequired(
true);
1430 $dur->enableToggleFullTime(
1431 $this->
lng->txt(
'event_fulltime_info'),
1432 $this->
object->getFirstAppointment()->enabledFulltime()
1434 $dur->setShowTime(
true);
1435 $dur->setStart($this->
object->getFirstAppointment()->getStart());
1436 $dur->setEnd($this->
object->getFirstAppointment()->getEnd());
1438 $this->
form->addItem($dur);
1442 if ($a_mode ==
'create') {
1443 if (!is_object($this->rec)) {
1447 $rec->allowUnlimitedRecurrences(
false);
1449 $this->
form->addItem($rec);
1453 $lp->setInfo($this->
lng->txt(
"sess_lp_preset_info"));
1454 $lp->setChecked(
true);
1455 $this->
form->addItem($lp);
1459 $section->setTitle($this->
lng->txt(
'event_section_information'));
1460 $this->
form->addItem($section);
1464 $title->setRequired(
true);
1465 $title->setValue($this->
object->getTitle());
1466 $title->setSize(50);
1467 $title->setMaxLength(70);
1468 $this->
form->addItem($title);
1475 $this->
form->addItem($desc);
1482 $this->
form->addItem($desc);
1491 if ($a_mode ==
'create') {
1496 $this->record_gui->setRefId($this->requested_ref_id);
1497 $this->record_gui->setPropertyForm($this->
form);
1498 $this->record_gui->parse();
1506 $this->record_gui->parse();
1512 $section->setTitle($this->
lng->txt(
'event_tutor_data'));
1513 $this->
form->addItem($section);
1517 $tutor_name->setValue($this->
object->getName());
1518 $tutor_name->setSize(20);
1519 $tutor_name->setMaxLength(70);
1520 $this->
form->addItem($tutor_name);
1523 $tutor_email =
new ilTextInputGUI($this->
lng->txt(
'tutor_email'),
'tutor_email');
1524 $tutor_email->setValue($this->
object->getEmail());
1525 $tutor_email->setSize(20);
1526 $tutor_email->setMaxLength(70);
1527 $this->
form->addItem($tutor_email);
1530 $tutor_phone =
new ilTextInputGUI($this->
lng->txt(
'tutor_phone'),
'tutor_phone');
1531 $tutor_phone->setValue($this->
object->getPhone());
1532 $tutor_phone->setSize(20);
1533 $tutor_phone->setMaxLength(70);
1534 $this->
form->addItem($tutor_phone);
1537 $section->setTitle($this->
lng->txt(
'sess_section_reg'));
1538 $this->
form->addItem($section);
1551 $reg_settings->addMembershipFormElements($this->
form,
'');
1555 $section->setTitle($this->
lng->txt(
'event_assign_files'));
1556 $this->
form->addItem($section);
1560 $this->
form->addItem($files);
1563 $section->setTitle($this->
lng->txt(
'sess_setting_header_presentation'));
1564 $this->
form->addItem($section);
1566 $object_service->
commonSettings()->legacyForm($this->
form, $this->
object)->addTileImage();
1569 $features->setTitle($this->
lng->txt(
'obj_features'));
1570 $this->
form->addItem($features);
1580 $gallery->setChecked($this->
object->getShowMembers());
1581 $gallery->setInfo($this->
lng->txt(
'sess_show_participants_info'));
1582 $this->
form->addItem($gallery);
1587 $mail_type->
setValue((
string) $this->
object->getMailToMembersType());
1590 $this->
lng->txt(
'sess_mail_admins_only'),
1592 $this->
lng->txt(
'sess_mail_admins_only_info')
1594 $mail_type->addOption($mail_tutors);
1597 $this->
lng->txt(
'sess_mail_all'),
1599 $this->
lng->txt(
'sess_mail_all_info')
1601 $mail_type->addOption($mail_all);
1602 $this->
form->addItem($mail_type);
1608 $this->
form->setTitle($this->
lng->txt(
'event_table_create'));
1610 $this->
form->addCommandButton(
'save', $this->
lng->txt(
'event_btn_add'));
1611 $this->
form->addCommandButton(
'saveAndAssignMaterials', $this->
lng->txt(
'event_btn_add_edit'));
1612 $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
1617 $this->
form->setTitle($this->
lng->txt(
'event_table_update'));
1619 $this->
form->addCommandButton(
'update', $this->
lng->txt(
'save'));
1620 $this->
form->addCommandButton(
'cancelEdit', $this->
lng->txt(
'cancel'));
1629 $event = $this->
form->getItemByPostVar(
'event');
1630 if ($event->getStart() && $event->getEnd()) {
1631 $this->
object->getFirstAppointment()->setStartingTime($event->getStart()->get(
IL_CAL_UNIX));
1632 $this->
object->getFirstAppointment()->setEndingTime($event->getStart()->get(
IL_CAL_UNIX));
1633 $this->
object->getFirstAppointment()->setStart($event->getStart());
1634 $this->
object->getFirstAppointment()->setEnd($event->getEnd());
1635 $this->
object->getFirstAppointment()->toggleFulltime($event->getStart() instanceof
ilDate);
1638 $this->
object->setTitle($this->
form->getInput(
'title'));
1639 $this->
object->setDescription($this->
form->getInput(
'desc'));
1640 $this->
object->setLocation($this->
form->getInput(
'location'));
1641 $this->
object->setName($this->
form->getInput(
'tutor_name'));
1642 $this->
object->setPhone($this->
form->getInput(
'tutor_phone'));
1643 $this->
object->setEmail($this->
form->getInput(
'tutor_email'));
1644 $this->
object->setDetails($this->
form->getInput(
'details'));
1646 $this->
object->setRegistrationNotificationEnabled((
bool) $this->
form->getInput(
'registration_notification'));
1647 $this->
object->setRegistrationNotificationOption($this->
form->getInput(
'notification_option'));
1649 $this->
object->setRegistrationType((
int) $this->
form->getInput(
'registration_type'));
1651 switch ($this->
object->getRegistrationType()) {
1653 $this->
object->enableCannotParticipateOption((
bool) $this->
form->getInput(
'show_cannot_participate_direct'));
1656 $this->
object->enableCannotParticipateOption((
bool) $this->
form->getInput(
'show_cannot_participate_request'));
1659 $this->
object->enableCannotParticipateOption(
false);
1664 $this->
object->setRegistrationMaxUsers((
int) $this->
form->getInput(
'registration_max_members'));
1665 $this->
object->enableRegistrationUserLimit((
int) $this->
form->getInput(
'registration_membership_limited'));
1666 $this->
object->setShowMembers((
bool) $this->
form->getInput(
'show_members'));
1667 $this->
object->setMailToMembersType((
int) $this->
form->getInput(
'mail_type'));
1669 switch ((
int) $this->
form->getInput(
'waiting_list')) {
1671 $this->
object->enableRegistrationWaitingList(
true);
1672 $this->
object->setWaitingListAutoFill(
true);
1676 $this->
object->enableRegistrationWaitingList(
true);
1677 $this->
object->setWaitingListAutoFill(
false);
1681 $this->
object->enableRegistrationWaitingList(
false);
1682 $this->
object->setWaitingListAutoFill(
false);
1691 switch ($this->
form->getInput(
'frequence')) {
1693 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1694 $this->rec->setInterval((
int) $this->
form->getInput(
'count_DAILY'));
1698 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1699 $this->rec->setInterval((
int) $this->
form->getInput(
'count_WEEKLY'));
1700 if (is_array($this->
form->getInput(
'byday_WEEKLY'))) {
1706 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1707 $this->rec->setInterval((
int) $this->
form->getInput(
'count_MONTHLY'));
1708 switch ((
int) $this->
form->getInput(
'subtype_MONTHLY')) {
1714 switch ((
int) $this->
form->getInput(
'monthly_byday_day')) {
1717 $this->rec->setBYSETPOS($this->
form->getInput(
'monthly_byday_num'));
1718 $this->rec->setBYDAY(
'MO,TU,WE,TH,FR');
1723 $this->rec->setBYMONTHDAY($this->
form->getInput(
'monthly_byday_num'));
1727 $this->rec->setBYDAY(($this->
form->getInput(
'monthly_byday_num') . $this->
form->getInput(
'monthly_byday_day')));
1733 $this->rec->setBYMONTHDAY($this->
form->getInput(
'monthly_bymonthday'));
1739 $this->rec->setFrequenceType($this->
form->getInput(
'frequence'));
1740 $this->rec->setInterval((
int) $this->
form->getInput(
'count_YEARLY'));
1741 switch ((
int) $this->
form->getInput(
'subtype_YEARLY')) {
1747 $this->rec->setBYMONTH($this->
form->getInput(
'yearly_bymonth_byday'));
1748 $this->rec->setBYDAY(($this->
form->getInput(
'yearly_byday_num') . $this->
form->getInput(
'yearly_byday')));
1752 $this->rec->setBYMONTH($this->
form->getInput(
'yearly_bymonth_by_monthday'));
1753 $this->rec->setBYMONTHDAY($this->
form->getInput(
'yearly_bymonthday'));
1760 switch ((
int) $this->
form->getInput(
'until_type')) {
1762 $this->rec->setFrequenceUntilDate(null);
1767 $this->rec->setFrequenceUntilDate(null);
1768 $this->rec->setFrequenceUntilCount((
int) $this->
form->getInput(
'count'));
1772 $frequence = $this->
form->getItemByPostVar(
'frequence');
1773 $end = $frequence->getRecurrence()->getFrequenceUntilDate();
1774 $this->rec->setFrequenceUntilCount(0);
1775 $this->rec->setFrequenceUntilDate($end);
1782 return mktime($time[
'h'], $time[
'm'], 0, $date[
'm'], $date[
'd'], $date[
'y']);
1791 $title = strlen($this->
object->getTitle()) ? (
': ' . $this->
object->getTitle()) :
'';
1792 $title = $this->
object->getFirstAppointment()->appointmentToString() . $title;
1809 $parent_class = $objDefinition->
getClassName($parent_type);
1810 $parent_class =
'ilObj' . $parent_class .
'GUI';
1825 $ilHelp->setScreenIdComponent(
"sess");
1832 $this->tabs_gui->setBackTarget(
1833 $this->
lng->txt(
'back_to_' . $parent_type .
'_content'),
1834 $ilCtrl->getLinkTarget($this,
"redirectToParentContentPage")
1837 $this->tabs_gui->addTarget(
1839 $this->
ctrl->getLinkTarget($this,
'infoScreen')
1842 if ($ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
1843 $this->tabs_gui->addTarget(
1845 $this->
ctrl->getLinkTarget($this,
'edit')
1848 if ($ilAccess->checkAccess(
'manage_materials',
'', $this->object->getRefId())) {
1849 $this->tabs_gui->addTab(
1851 $this->
lng->txt(
'crs_materials'),
1852 $this->
ctrl->getLinkTarget($this,
'materials')
1857 $parent_id = $tree->
getParentId($this->requested_ref_id);
1863 $this->tabs_gui->addTarget(
1864 "obj_tool_setting_booking",
1865 $this->
ctrl->getLinkTargetByClass(array(
"ilbookinggatewaygui"),
"")
1870 $is_participant = $this->
object->getMembersObject()->isAssigned($ilUser->getId());
1872 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
1877 $this->tabs_gui->addTarget(
1878 'learning_progress',
1879 $this->
ctrl->getLinkTargetByClass(array(
'ilobjsessiongui',
'illearningprogressgui'),
''),
1881 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
1886 if ($ilAccess->checkAccess(
'edit_metadata',
'', $this->ref_id)) {
1888 $mdtab = $mdgui->getTab();
1890 $this->tabs_gui->addTab(
1892 $this->
lng->txt(
'meta_data'),
1899 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1900 $this->tabs_gui->addTarget(
1902 $this->
ctrl->getLinkTargetByClass(
"ilexportgui",
""),
1910 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
1911 $this->tabs_gui->addTarget(
1913 $this->
ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm"),
1914 array(
"perm",
"info",
"owner"),
1937 foreach ($a_usr_ids as $usr_id) {
1938 $tmp_data[$usr_id] = [];
1945 if (!$this->container_ref_id) {
1956 $parent_id = $tree->
getParentId($this->requested_ref_id);
1958 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $parent_id);
1960 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1969 foreach ($local_roles as $role_id) {
1971 if (substr($title, 0, 19) ==
'il_sess_participant') {
1990 $link = chr(13) . chr(10) . chr(13) . chr(10);
1991 $link .= $this->
lng->txt(
'sess_mail_permanent_link');
1992 $link .= chr(13) . chr(10) . chr(13) . chr(10);
1993 $link .= ilLink::_getLink($this->
object->getRefId());
1994 return rawurlencode(base64_encode($link));
static factory(string $a_type)
Get list gui by type This method caches all the returned list guis.
ilAdvancedMDRecordGUI $record_gui
getAttendanceListUserData(int $a_user_id, array $a_filters)
static get(string $a_var)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
redirectToParentContentPageObject()
setPropertyForm(ilPropertyFormGUI $form)
string $requested_sort_by
ilRbacReview $rbac_review
__toUnix(array $date, array $time)
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
redirectByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
initContainer(bool $a_init_participants=false)
afterSaveCallback(ilObject $a_obj)
Custom callback after object is created (in parent container)
static _goto(string $a_target)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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...
GUI class for the workflow of copying objects.
static getItemsByEvent(int $event_id)
Get session material / event items.
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
$location
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
importEditFormPostValues()
Load edit form values from post.
static switchTemplate(int $a_ref_id, int $a_new_tpl_id)
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static getInstance(int $a_ref_id)
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
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...
updateSessionTypeObject()
change session type
string $requested_sort_order
static initDomEvent(?ilGlobalTemplateInterface $a_main_tpl=null)
Init YUI DomEvent used in Services/Calendar, Modules/Session, Modules/Test (Jan 2022) ...
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _gotoRepositoryNode(int $ref_id, string $cmd="")
static _lookupName(int $a_user_id)
lookup user name
showJoinRequestButton(?ilToolbarGUI $ilToolbar=null)
initCreateForm($new_type)
static _register(int $a_usr_id, int $a_event_id)
This class is used for integration of the booking manager as a service into other repository objects...
setParameterByClass(string $a_class, string $a_parameter, $a_value)
getRegisteredParticipants()
hasParticipated(int $a_usr_id)
loadLanguageModule(string $a_module)
Load language module.
getSideBlockTypes(bool $filter_repository_types=true)
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
createObject()
create new object form
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static updateServiceSettingsForm(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...
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
createRecurringSessions(bool $a_activate_lp=true)
static resetCaches()
Reset internal caches.
saveObject(bool $a_redirect_on_success=true)
setRecurrence(int $a_type)
set type of recurrence public
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
Base class for attendance lists.
unregisterObject(bool $a_refuse_participation=false)
static _lookupObjId(int $ref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setValue(string $a_value)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilEventItems $event_items
refuseParticipationObject()
prepareOutput(bool $show_sub_objects=true)
Export User Interface Class.
parses the objects.xml it handles the xml-description of all ilias objects
GUI class for public user profile presentation.
static lookupTemplateId(int $a_ref_id)
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...
static http()
Fetches the global http state from ILIAS.
static _isRegistered(int $a_usr_id, int $a_event_id)
static _lookupTitle(int $obj_id)
setContent(string $a_html)
Sets content for standard template.
static _getInstanceByObjId(int $a_obj_id)
static getInstance(int $a_ref_id)
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...
ILIAS Refinery Factory $refinery
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
initDidacticTemplate(ilPropertyFormGUI $form)
Class ilObjectGUI Basic methods of all Output classes.
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 getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
getClassName(string $obj_name)
const REGISTRATION_LIMITED_USERS
static addListGUIActivationProperty(ilObjectListGUI $list_gui, array &$item)
Get timing details for list gui.
readMemberData(array $a_usr_ids)
Used for waiting list.
static deleteUserEntry(int $a_usr_id, int $a_obj_id)
getParentId(int $a_node_id)
get parent id of given node
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)
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
showJoinRequestButtonInCalendar(ilToolbarGUI $a_ilToolbar)
show join request This method is only needed to keep showJoinRequestButton method protected...
static _unregister(int $a_usr_id, int $a_event_id)
ilEventParticipants $event_part
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
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,7),'usr_data','lastname','usr_id') => sorts by lastname.
__showButton(string $cmd, string $text, string $target='')
form( $class_path, string $cmd, string $submit_caption="")
const LP_MODE_DEACTIVATED
Error Handling & global info handling.
static formatPeriod(ilDateTime $start, ilDateTime $end, bool $a_skip_starting_day=false)
Format a period of two dates Shows: 14.
static _getInstanceByObjId(int $a_obj_id)
Get singleton instance.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
updateExcusedForUser(int $a_usr_id, bool $a_status)
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
static _getInstance(int $a_obj_id)
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...
addItem(string $a_title, string $a_link, string $a_frame="", int $a_ref_id=0, ?string $type=null)
setInfoObject(ilInfoScreenGUI $info)
get info sections
const MESSAGE_TYPE_FAILURE
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
removeItems(array $a_items)
static _isOnList(int $a_usr_id, int $a_obj_id)
ilGlobalTemplateInterface $tpl
getSubTree(array $a_node, bool $a_with_data=true, array $a_type=[])
get all nodes in the subtree under specified node
static _lookupType(int $id, bool $reference=false)
static setUseRelativeDates(bool $a_status)
set use relative dates
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data, bool $a_show_path)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjectService $object_service
addHeaderAction()
Add header action menu.
static makeClickable(string $a_text, bool $detectGotoLinks=false)
addItem(int $a_item_ref_id)
ilObjectDefinition $objDefinition
saveAndAssignMaterialsObject()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
static set(string $a_var, $a_val)
Set a value.
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) ...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
printAttendanceListObject()
ILIAS HTTP Services $http
calculateDateList(ilDateTime $a_start, ilDateTime $a_end, int $a_limit=-1)
calculate date list
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
postUpdateMaterials()
redirect to list of materials without offset/page.
static _lookupLogin(int $a_user_id)
ILIAS FileUpload FileUpload $upload