21 include_once(
'./Services/Object/classes/class.ilObjectGUI.php');
22 include_once(
'./Modules/Session/classes/class.ilObjSession.php');
23 include_once(
'./Modules/Session/classes/class.ilSessionFile.php');
64 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
68 $ilCtrl = $DIC[
'ilCtrl'];
76 $this->lng->loadLanguageModule(
"event");
77 $this->lng->loadLanguageModule(
'crs');
78 $this->lng->loadLanguageModule(
'trac');
79 $this->lng->loadLanguageModule(
'sess');
82 $this->ctrl = $ilCtrl;
84 $this->
http = $DIC->http();
85 $this->logger = $DIC->logger()->sess();
86 $this->
ui = $DIC->ui();
101 $ilCtrl = $DIC[
'ilCtrl'];
103 $next_class = $this->ctrl->getNextClass($this);
104 $cmd = $this->ctrl->getCmd();
108 $GLOBALS[
'DIC']->access()->checkAccess(
'read',
'',
$_GET[
'ref_id'])
110 $GLOBALS[
'DIC'][
'ilNavigationHistory']->addItem(
111 (
int)
$_GET[
'ref_id'],
118 switch ($next_class) {
119 case 'ilsessionmembershipgui':
120 $this->tabs_gui->activateTab(
'members');
121 include_once
'./Modules/Session/classes/class.ilSessionMembershipGUI.php';
123 $this->ctrl->forwardCommand($mem_gui);
126 case "ilinfoscreengui":
131 case 'ilobjectmetadatagui':
133 $this->tabs_gui->activateTab(
'metadata');
135 $this->ctrl->forwardCommand($md_gui);
139 case 'ilpermissiongui':
140 $this->tabs_gui->setTabActive(
'perm_settings');
141 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
143 $ret = $this->ctrl->forwardCommand($perm_gui);
146 case 'ilobjectcopygui':
147 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
149 $cp->setType(
'sess');
150 $this->ctrl->forwardCommand($cp);
155 $this->tabs_gui->setTabActive(
"export");
156 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
158 $exp_gui->addFormat(
"xml");
159 $ret = $this->ctrl->forwardCommand($exp_gui);
163 case "ilcommonactiondispatchergui":
164 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
166 $this->ctrl->forwardCommand($gui);
169 case 'ilmembershipgui':
170 $this->ctrl->setReturn($this,
'members');
171 include_once
'./Services/Membership/classes/class.ilMembershipMailGUI.php';
173 $this->ctrl->forwardCommand($mem);
176 case "illearningprogressgui":
177 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
180 $this->object->getRefId(),
183 $this->ctrl->forwardCommand($new_gui);
184 $this->tabs_gui->setTabActive(
'learning_progress');
187 case "ilpropertyformgui":
189 if (!is_object($this->
object)) {
194 $ilCtrl->forwardCommand($form);
197 case "ilbookinggatewaygui":
198 $tree = $DIC[
'tree'];
199 $parent_id =
$tree->getParentId((
int) $_REQUEST[
'ref_id']);
201 $this->tabs_gui->activateTab(
'obj_tool_setting_booking');
203 $this->ctrl->forwardCommand($gui);
207 if ($cmd ==
"applyFilter") {
208 $cmd ==
"applyFilter";
210 } elseif ($cmd ==
"resetFilter") {
211 $cmd ==
"resetFilter";
234 $this->ctrl->redirectByClass(
'ilSessionMembershipGUI',
'participants');
251 parent::prepareOutput($a_show_subobjects);
254 $title = strlen($this->object->getTitle()) ? (
': ' . $this->object->getTitle()) :
'';
256 include_once
'./Modules/Session/classes/class.ilSessionAppointment.php';
257 $this->tpl->setTitle(
258 $this->object->getFirstAppointment()->appointmentToString() . $title
275 $ilAppEventHandler = $DIC[
'ilAppEventHandler'];
279 include_once
'./Services/Membership/classes/class.ilParticipants.php';
282 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
284 $event_part->updateExcusedForUser(
$ilUser->getId(),
false);
289 (count($event_part->getRegistered()) >= $this->
getCurrentObject()->getRegistrationMaxUsers())
293 $this->ctrl->redirect($this,
'infoScreen');
295 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
297 $wait->addToList(
$ilUser->getId());
299 $this->ctrl->redirect($this,
'infoScreen');
306 $this->ctrl->redirect($this,
'info');
310 $part->register(
$ilUser->getId());
311 ilUtil::sendSuccess($this->lng->txt(
'event_registered'),
true);
313 $ilAppEventHandler->raise(
323 $this->ctrl->redirect($this,
'infoScreen');
327 ilUtil::sendSuccess($this->lng->txt(
'sess_registered_confirm'),
true);
328 $part->addSubscriber(
$ilUser->getId());
330 $ilAppEventHandler->raise(
340 $this->ctrl->redirect($this,
'infoScreen');
358 $this->ctrl->redirect($this,
'infoScreen');
361 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
366 ilUtil::sendSuccess($this->lng->txt(
'event_unregistered'),
true);
369 ilUtil::sendSuccess($this->lng->txt(
'event_registered'),
true);
372 $this->ctrl->redirect($this,
'infoScreen');
387 $ilAppEventHandler = $DIC[
'ilAppEventHandler'];
389 include_once
'./Modules/Session/classes/class.ilSessionParticipants.php';
391 if ($part->isSubscriber(
$ilUser->getId())) {
392 $part->deleteSubscriber(
$ilUser->getId());
395 $part->unregister(
$ilUser->getId());
397 if ($a_refuse_participation) {
398 $event_part = new \ilEventParticipants($this->object->getId());
399 $event_part->updateExcusedForUser(
$ilUser->getId(),
true);
403 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
409 $has_access =
$GLOBALS[
'DIC']->access()->checkAccessOfUser(
413 $this->object->getRefId()
416 $parent =
$GLOBALS[
'DIC']->repositoryTree()->getParentId($this->object->getRefId());
421 $ilAppEventHandler->raise(
430 if ($a_refuse_participation) {
433 ilUtil::sendSuccess($this->lng->txt(
'event_unregistered'),
true);
435 $this->ctrl->returnToParent($this);
446 public static function _goto($a_target)
450 $ilAccess = $DIC->access();
452 $lng = $DIC->language();
454 $ilCtrl = $DIC->ctrl();
455 $parts = explode(
'_', $a_target);
456 $a_target = $parts[0];
458 if ($ilAccess->checkAccess(
'write',
'', $a_target)) {
459 if (isset($parts[1]) &&
'part' === $parts[1]) {
460 $ilCtrl->initBaseClass(
'ilRepositoryGUI');
461 $ilCtrl->setParameterByClass(
'ilSessionMembershipGUI',
'ref_id', (
int) $a_target);
462 $ilCtrl->setTargetScript(
'ilias.php');
463 $ilCtrl->redirectByClass(array(
'ilRepositoryGUI', __CLASS__,
'ilSessionMembershipGUI'));
467 if ($ilAccess->checkAccess(
'visible',
"", $a_target)) {
472 $lng->txt(
"msg_no_perm_read_item"),
490 $this->ctrl->setCmd(
"showSummary");
491 $this->ctrl->setCmdClass(
"ilinfoscreengui");
506 $tree = $DIC[
'tree'];
509 if ($course_ref_id =
$tree->checkForParentType($this->object->getRefId(),
'crs')) {
511 include_once
"Services/Object/classes/class.ilObjectActivation.php";
514 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
515 include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
525 $this->object->getRefId()
562 $ilToolbar = $DIC[
'ilToolbar'];
569 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
571 include_once
'./Services/Membership/classes/class.ilParticipants.php';
574 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
576 $this->ctrl->setParameter($this,
"ref_id", $this->
getCurrentObject()->getRefId());
579 if ($this->object->isCannotParticipateOptionEnabled()) {
580 $btn_excused = $this->
ui->factory()->button()->standard(
581 $this->lng->txt(
'sess_bt_refuse'),
582 $this->ctrl->getLinkTarget($this,
'refuseParticipation')
588 if (!is_null($btn_excused)) {
589 $ilToolbar->addComponent($btn_excused);
592 } elseif ($part->isSubscriber(
$ilUser->getId())) {
593 if (!is_null($btn_excused)) {
594 $ilToolbar->addComponent($btn_excused);
598 if (!is_null($btn_excused)) {
599 $ilToolbar->addComponent($btn_excused);
609 (count($event_part->getRegistered()) >= $this->
getCurrentObject()->getRegistrationMaxUsers())
613 $btn_attend = $this->
ui->factory()->button()->primary(
614 $this->lng->txt(
"mem_add_to_wl"),
615 $this->ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
617 $ilToolbar->addComponent($btn_attend);
618 if (!$event_part->isExcused(
$ilUser->getId()) && !is_null($btn_excused)) {
619 $ilToolbar->addComponent($btn_excused);
627 if (!isset(
$_SESSION[
'sess_hide_info'])) {
629 $btn_attend = $this->
ui->factory()->button()->primary(
630 $this->lng->txt(
"join_session"),
631 $this->ctrl->getLinkTargetByClass(array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register")
633 $ilToolbar->addComponent($btn_attend);
634 if (!$event_part->isExcused(
$ilUser->getId()) && !is_null($btn_excused)) {
635 $ilToolbar->addComponent($btn_excused);
655 $ilAccess = $DIC[
'ilAccess'];
657 $ilCtrl = $DIC[
'ilCtrl'];
658 $tree = $DIC[
'tree'];
659 $ilToolbar = $DIC[
'ilToolbar'];
663 $this->tabs_gui->setTabActive(
'info_short');
667 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
669 $info->enableBookingInfo(
true);
672 $parent_id =
$tree->getParentId($this->object->getRefId());
676 $this->object->getId(),
680 $lng->loadLanguageModule(
"cntr");
683 foreach ($eventItems as $item) {
685 $list_gui->setContainerObject($this);
689 $html .= $list_gui->getListItemHTML(
698 $info->addSection($this->lng->txt(
'event_materials'));
708 if (strlen($this->object->getLocation()) or strlen($this->object->getDetails())) {
709 $info->addSection($this->lng->txt(
'event_section_information'));
711 if (strlen(
$location = $this->object->getLocation())) {
713 $this->lng->txt(
'event_location'),
717 if (strlen($this->object->getDetails())) {
719 $this->lng->txt(
'event_details_workflow'),
726 $record_gui->parse();
729 $info->addMetaDataSections($this->object->getId(), 0, $this->
object->getType());
733 if ($this->object->hasTutorSettings()) {
734 $info->addSection($this->lng->txt(
'event_tutor_data'));
735 if (strlen($fullname = $this->object->getName())) {
737 $this->lng->txt(
'event_lecturer'),
741 if (strlen(
$email = $this->object->getEmail())) {
743 $this->lng->txt(
'tutor_email'),
747 if (strlen($phone = $this->object->getPhone())) {
749 $this->lng->txt(
'tutor_phone'),
757 $contacts = $parts->getContacts();
758 if (count($contacts) > 0) {
759 $info->addSection($this->lng->txt(
"crs_mem_contacts"));
760 foreach ($contacts as $contact) {
762 $pgui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
763 $pgui->setEmbedded(
true);
764 $info->addProperty(
"", $pgui->getHTML());
769 $this->ctrl->forwardCommand($info);
772 require_once
'Services/Tracking/classes/class.ilChangeEvent.php';
774 $this->object->getType(),
775 $this->
object->getRefId(),
776 $this->
object->getId(),
796 if (!is_object($this->
object)) {
811 $this->ctrl->setParameter($this,
'ref_id', $this->object->getRefId());
812 $this->ctrl->setParameter($this,
'new_type',
'');
813 $this->ctrl->redirect($this,
'materials');
832 $this->ctrl->saveParameter($this,
"new_type");
836 if (!$form->checkInput()) {
837 $form->setValuesByPost();
838 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
847 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
853 $this->
object->validate();
854 $this->
object->getFirstAppointment()->validate();
856 if (strlen(
$ilErr->getMessage())) {
858 $this->form->setValuesByPost();
863 $this->
object->create();
864 $this->
object->createReference();
865 $this->
object->putInTree(
$_GET[
"ref_id"]);
866 $this->
object->setPermissions(
$_GET[
"ref_id"]);
869 $this->object->getId(),
876 $this->record_gui->writeEditForm($this->object->getId());
883 $this->
object->applyDidacticTemplate($dtpl);
887 if (!$this->form->getInput(
"lp_preset")) {
888 include_once
"Services/Tracking/classes/class.ilLPObjSettings.php";
891 $lp_obj_settings->update(
false);
895 $this->
object->getFirstAppointment()->setSessionId($this->object->getId());
896 $this->
object->getFirstAppointment()->create();
900 $DIC->object()->commonSettings()->legacyForm($this->form, $this->
object)->saveTileImage();
904 if ($a_redirect_on_success) {
906 $this->ctrl->returnToParent($this);
916 $tree = $DIC[
'tree'];
918 include_once
'./Modules/Session/classes/class.ilEventItems.php';
924 if (!isset($_FILES[
'files'][
'name'][$counter])) {
927 if (!strlen($_FILES[
'files'][
'name'][$counter])) {
932 include_once
'./Modules/File/classes/class.ilObjFile.php';
935 $file->setDescription(
'');
937 $file->setFileType($_FILES[
'files'][
'type'][$counter]);
938 $file->setFileSize($_FILES[
'files'][
'size'][$counter]);
940 $new_ref_id = $file->createReference();
941 $file->putInTree(
$tree->getParentId($this->object->getRefId()));
942 $file->setPermissions(
$tree->getParentId($this->object->getRefId()));
943 $file->createDirectory();
945 $upload = $DIC->upload();
946 if (!$upload->hasBeenProcessed()) {
949 $file->getUploadFile(
950 $_FILES[
'files'][
'tmp_name'][$counter],
951 $_FILES[
'files'][
'name'][$counter]
954 $items[] = $new_ref_id;
975 $tree = $DIC[
'tree'];
977 if (!$this->rec->getFrequenceType()) {
980 include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrenceCalculator.php');
983 $period_start = clone $this->
object->getFirstAppointment()->getStart();
986 $period_end = clone $this->
object->getFirstAppointment()->getStart();
990 $period_diff = $this->
object->getFirstAppointment()->getEnd()->get(
IL_CAL_UNIX) -
991 $this->
object->getFirstAppointment()->getStart()->get(
IL_CAL_UNIX);
992 $parent_id =
$tree->getParentId($this->object->getRefId());
994 include_once
'./Modules/Session/classes/class.ilEventItems.php';
999 foreach ($date_list->get() as $date) {
1004 $new_obj = $this->
object->cloneObject($parent_id);
1009 $new_obj->applyDidacticTemplate($dtpl);
1013 $new_obj->getFirstAppointment()->setStartingTime($date->get(
IL_CAL_UNIX));
1014 $new_obj->getFirstAppointment()->setEndingTime($date->get(
IL_CAL_UNIX) + $period_diff);
1015 $new_obj->getFirstAppointment()->update();
1016 $new_obj->update(
true);
1019 if (!$a_activate_lp) {
1020 include_once
"Services/Tracking/classes/class.ilLPObjSettings.php";
1023 $lp_obj_settings->update(
false);
1042 $this->tabs_gui->setTabActive(
'settings');
1045 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_edit.html',
'Modules/Session');
1046 $this->tpl->setVariable(
'EVENT_EDIT_TABLE', $this->form->getHTML());
1048 if (!count($this->object->getFiles())) {
1052 foreach ($this->object->getFiles() as $file) {
1053 $table_data[
'id'] = $file->getFileId();
1054 $table_data[
'filename'] = $file->getFileName();
1055 $table_data[
'filetype'] = $file->getFileType();
1056 $table_data[
'filesize'] = $file->getFileSize();
1058 $rows[] = $table_data;
1061 include_once(
"./Modules/Session/classes/class.ilSessionFileTableGUI.php");
1063 $table_gui->setTitle($this->lng->txt(
"event_files"));
1064 $table_gui->setData(
$rows);
1065 $table_gui->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1066 $table_gui->addMultiCommand(
"confirmDeleteFiles", $this->lng->txt(
"delete"));
1067 $table_gui->setSelectAllCheckbox(
"file_id");
1068 $this->tpl->setVariable(
'EVENT_FILE_TABLE', $table_gui->getHTML());
1082 $old_autofill = $this->
object->hasWaitingListAutoFill();
1086 if (!$this->form->checkInput()) {
1087 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
1088 $form->setValuesByPost();
1097 $new_type_info = $form->getInput(
'didactic_type');
1098 if ($new_type_info) {
1099 $new_type = explode(
'_', $form->getInput(
'didactic_type'));
1100 $new_type = $new_type[1];
1102 $modified = ($new_type != $old_type);
1103 $this->logger->info(
'Switched group type from ' . $old_type .
' to ' . $new_type);
1110 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
1115 $this->
object->validate();
1116 $this->
object->getFirstAppointment()->validate();
1118 if (strlen(
$ilErr->getMessage())) {
1124 $this->
object->update();
1125 $this->
object->getFirstAppointment()->update();
1128 $this->object->getId(),
1135 $this->record_gui->writeEditForm();
1139 $DIC->object()->commonSettings()->legacyForm($this->form, $this->
object)->saveTileImage();
1142 if (!$old_autofill &&
1143 $this->object->hasWaitingListAutoFill()) {
1144 $this->
object->handleAutoFill();
1149 if ($new_type == 0) {
1150 $new_type_txt = $this->lng->txt(
'il_sess_status_open');
1153 $new_type_txt = $dtpl->getPresentationTitle($this->lng->getLangKey());
1155 $this->tabs_gui->activateTab(
'settings');
1159 $confirm->setFormAction($this->ctrl->getFormAction($this));
1163 $this->lng->txt(
'sess_info_new_sess_type') .
': ' . $new_type_txt
1165 $confirm->addButton($this->lng->txt(
'sess_change_type'),
'updateSessionType');
1166 $confirm->setCancel($this->lng->txt(
'cancel'),
'edit');
1168 $this->tpl->setContent($confirm->getHTML());
1171 ilUtil::sendSuccess($this->lng->txt(
'event_updated'),
true);
1172 $this->ctrl->redirect($this,
'edit');
1173 #$this->object->initFiles(); 1174 #$this->editObject(); 1185 $this->object->getRefId(),
1186 $this->
http->request()->getParsedBody()[
'sess_type']
1189 ilUtil::sendSuccess($this->lng->txt(
'settings_saved'),
true);
1190 $this->ctrl->redirect($this,
'edit');
1202 $this->tabs_gui->setTabActive(
'settings');
1204 if (!count(
$_POST[
'file_id'])) {
1210 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
1214 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"deleteFiles"));
1215 $c_gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
1216 $c_gui->setCancel($this->lng->txt(
"cancel"),
"edit");
1217 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"deleteFiles");
1220 foreach (
$_POST[
"file_id"] as $file_id) {
1222 if ($file->getSessionId() != $this->
object->getEventId()) {
1227 $c_gui->addItem(
"file_id[]", $file_id, $file->getFileName());
1230 $this->tpl->setContent($c_gui->getHTML());
1243 if (!count(
$_POST[
'file_id'])) {
1248 foreach (
$_POST[
'file_id'] as $id) {
1252 $this->
object->initFiles();
1261 $tree = $DIC[
'tree'];
1263 $is_course = $is_group =
false;
1266 $this->container_ref_id =
$tree->checkForParentType($this->object->getRefId(),
'grp');
1267 if ($this->container_ref_id) {
1270 if (!$this->container_ref_id) {
1271 $this->container_ref_id =
$tree->checkForParentType($this->object->getRefId(),
'crs');
1272 if ($this->container_ref_id) {
1276 if (!$this->container_ref_id) {
1282 if ($a_init_participants && $this->container_obj_id) {
1284 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
1286 } elseif ($is_group) {
1287 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
1300 $tree = $DIC[
'tree'];
1303 $this->tabs_gui->activateTab(
'materials');
1306 $parent_ref_id =
$tree->getParentId($this->object->getRefId());
1308 include_once
"Services/Object/classes/class.ilObjectAddNewItemGUI.php";
1310 $gui->setDisabledObjectTypes(
1318 $gui->setAfterCreationCallback($this->ref_id);
1321 include_once
'Modules/Session/classes/class.ilEventItems.php';
1322 $this->event_items =
new ilEventItems($this->object->getId());
1324 include_once
'Modules/Session/classes/class.ilSessionMaterialsTableGUI.php';
1327 $tbl->setDisableFilterHiding(
true);
1329 $tbl->addMultiCommand(
'saveMaterials', $this->lng->txt(
'sess_assign'));
1330 $tbl->addMultiCommand(
"removeMaterials", $this->lng->txt(
"remove"));
1332 $tbl->setTitle($this->lng->txt(
"event_assign_materials_table"));
1333 $tbl->setDescription($this->lng->txt(
'event_assign_materials_info'));
1335 $tbl->setMaterialItems($this->event_items->getItems());
1337 $data = $tbl->getDataFromDb();
1338 $tbl->setMaterials(
$data);
1340 $this->tpl->setContent($tbl->getHTML());
1349 $tbl->writeFilterToSession();
1350 $tbl->resetOffset();
1351 $this->ctrl->redirect($this,
"materials");
1360 $tbl->resetOffset();
1361 $tbl->resetFilter();
1362 $this->ctrl->redirect($this,
"materials");
1370 $items_checked = is_array(
$_POST[
'items']) ?
$_POST[
'items'] : array();
1372 $this->event_items =
new ilEventItems($this->object->getId());
1386 include_once
'./Modules/Session/classes/class.ilEventItems.php';
1388 $this->event_items =
new ilEventItems($this->object->getId());
1389 $db_items = $this->event_items->
getItems();
1391 $list_items_checked = is_array(
$_POST[
'items']) ?
$_POST[
'items'] : array();
1392 $list_items_checked = array_map(
'intval', $list_items_checked);
1394 $items_to_save = array_merge($db_items, $list_items_checked);
1395 $items_to_save = array_unique($items_to_save);
1397 $this->event_items->setItems($items_to_save);
1398 $this->event_items->update();
1407 include_once
'Modules/Session/classes/class.ilSessionMaterialsTableGUI.php';
1410 $tbl->storeNavParameter();
1412 ilUtil::sendSuccess($this->lng->txt(
'settings_saved'),
true);
1413 $this->ctrl->redirect($this,
'materials');
1428 $ilTabs = $DIC[
'ilTabs'];
1431 $ilTabs->setTabActive(
'event_edit_members');
1434 $form = $list->initForm(
'printAttendanceList');
1435 $tpl->setContent($form->getHTML());
1447 include_once
'Services/Membership/classes/class.ilAttendanceList.php';
1453 $list->setId(
'sessattlst');
1455 $event_app = $this->
object->getFirstAppointment();
1459 $desc .=
" " . $this->
object->getTitle();
1460 $list->setTitle($this->lng->txt(
'sess_attendance_list'), $desc);
1462 $list->addPreset(
'mark', $this->lng->txt(
'trac_mark'),
true);
1463 $list->addPreset(
'comment', $this->lng->txt(
'trac_comment'),
true);
1464 if ($this->object->enabledRegistration()) {
1465 $list->addPreset(
'registered', $this->lng->txt(
'event_tbl_registered'),
true);
1467 $list->addPreset(
'participated', $this->lng->txt(
'event_tbl_participated'),
true);
1468 $list->addBlank($this->lng->txt(
'sess_signature'));
1470 $list->addUserFilter(
'registered', $this->lng->txt(
'event_list_registered_only'));
1485 $list->initFromForm();
1486 $list->setCallback(array($this,
'getAttendanceListUserData'));
1488 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1491 echo $list->getFullscreenHTML();
1506 $data = $this->event_part->getUser($a_user_id);
1508 if ($a_filters && $a_filters[
"registered"] && !
$data[
"registered"]) {
1513 $this->lng->txt(
'yes') :
1514 $this->lng->txt(
'no');
1515 $data[
'participated'] =
$data[
'participated'] ?
1516 $this->lng->txt(
'yes') :
1517 $this->lng->txt(
'no');
1534 $ilAccess = $DIC[
'ilAccess'];
1536 $tree = $DIC[
'tree'];
1538 if (!$ilAccess->checkAccess(
'manage_members',
'', $this->object->getRefId())) {
1539 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),
$ilErr->MESSAGE);
1542 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_list.html',
'Modules/Session');
1543 $this->
__showButton($this->ctrl->getLinkTarget($this,
'exportCSV'), $this->lng->txt(
'event_csv_export'));
1545 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1547 $this->tpl->addBlockfile(
"EVENTS_TABLE",
"events_table",
"tpl.table.html");
1548 $this->tpl->addBlockfile(
'TBL_CONTENT',
'tbl_content',
'tpl.sess_list_row.html',
'Modules/Session');
1551 $members = $members_obj->getParticipants();
1557 $this->lng->txt(
"event_overview"),
1559 $this->lng->txt(
'obj_usr')
1561 $this->ctrl->setParameter($this,
'offset', (
int)
$_GET[
'offset']);
1563 $course_ref_id =
$tree->checkForParentType($this->object->getRefId(),
'crs');
1565 foreach (
$tree->getSubtree(
$tree->getNodeData($course_ref_id),
false,
'sess') as $event_id) {
1567 if (!is_object($tmp_event) or $tmp_event->getType() !=
'sess') {
1570 $events[] = $tmp_event;
1573 $headerNames = array();
1574 $headerVars = array();
1575 $colWidth = array();
1577 $headerNames[] = $this->lng->txt(
'name');
1578 $headerVars[] =
"name";
1579 $colWidth[] =
'20%';
1581 for (
$i = 1;
$i <= count($events);
$i++) {
1582 $headerNames[] =
$i;
1583 $headerVars[] =
"event_" .
$i;
1584 $colWidth[] = 80 / count($events) .
"%";
1587 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
1588 $tbl->setHeaderNames($headerNames);
1589 $tbl->setHeaderVars($headerVars, $this->ctrl->getParameterArray($this,
'eventsList'));
1590 $tbl->setColumnWidth($colWidth);
1592 $tbl->setOrderColumn($_GET[
"sort_by"]);
1593 $tbl->setOrderDirection($_GET[
"sort_order"]);
1594 $tbl->setOffset($_GET[
"offset"]);
1595 $tbl->setLimit(
$ilUser->getPref(
"hits_per_page"));
1596 $tbl->setMaxCount(count($members));
1597 $tbl->setFooter(
"tblfooter", $this->lng->txt(
"previous"), $this->lng->txt(
"next"));
1599 $sliced_users = array_slice($members, $_GET[
'offset'],
$_SESSION[
'tbl_limit']);
1600 $tbl->disable(
'sort');
1604 foreach ($sliced_users as $user_id) {
1605 foreach ($events as $event_obj) {
1606 $this->tpl->setCurrentBlock(
"eventcols");
1611 $this->tpl->setVariable(
"IMAGE_PARTICIPATED", $event_part->hasParticipated($user_id) ?
1615 $this->tpl->setVariable(
"PARTICIPATED", $event_part->hasParticipated($user_id) ?
1616 $this->lng->txt(
'event_participated') :
1617 $this->lng->txt(
'event_not_participated'));
1620 $this->tpl->parseCurrentBlock();
1623 $this->tpl->setCurrentBlock(
"tbl_content");
1625 $this->tpl->setVariable(
"CSS_ROW",
ilUtil::switchColor($counter++,
'tblrow1',
'tblrow2'));
1626 $this->tpl->setVariable(
"LASTNAME",
$name[
'lastname']);
1627 $this->tpl->setVariable(
"FIRSTNAME",
$name[
'firstname']);
1629 $this->tpl->parseCurrentBlock();
1632 $this->tpl->setVariable(
"HEAD_TXT_LEGEND", $this->lng->txt(
"legend"));
1633 $this->tpl->setVariable(
"HEAD_TXT_DIGIT", $this->lng->txt(
"event_digit"));
1634 $this->tpl->setVariable(
"HEAD_TXT_EVENT", $this->lng->txt(
"event"));
1635 $this->tpl->setVariable(
"HEAD_TXT_LOCATION", $this->lng->txt(
"event_location"));
1636 $this->tpl->setVariable(
"HEAD_TXT_DATE_TIME", $this->lng->txt(
"event_date_time"));
1638 foreach ($events as $event_obj) {
1639 $this->tpl->setCurrentBlock(
"legend_loop");
1640 $this->tpl->setVariable(
"LEGEND_CSS_ROW",
ilUtil::switchColor($counter++,
'tblrow1',
'tblrow2'));
1641 $this->tpl->setVariable(
"LEGEND_DIGIT",
$i++);
1642 $this->tpl->setVariable(
"LEGEND_EVENT_TITLE", $event_obj->getTitle());
1643 $this->tpl->setVariable(
"LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
1644 $this->tpl->setVariable(
"LEGEND_EVENT_LOCATION", $event_obj->getLocation());
1645 $this->tpl->setVariable(
"LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
1646 $this->tpl->parseCurrentBlock();
1659 if (is_object($this->form)) {
1663 $this->lng->loadLanguageModule(
'dateplaner');
1665 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1667 include_once(
'./Services/YUI/classes/class.ilYuiUtil.php');
1671 $this->form->setMultipart(
true);
1672 $this->form->setTableWidth(
'600px');
1673 $this->form->setFormAction($this->ctrl->getFormAction($this));
1674 $this->form->setMultipart(
true);
1678 $this->lng->loadLanguageModule(
'dateplaner');
1679 include_once
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
1682 $dur->enableToggleFullTime(
1683 $this->lng->txt(
'event_fulltime_info'),
1684 $this->
object->getFirstAppointment()->enabledFulltime() ? true : false
1686 $dur->setShowTime(
true);
1687 $dur->setStart($this->object->getFirstAppointment()->getStart());
1688 $dur->setEnd($this->object->getFirstAppointment()->getEnd());
1690 $this->form->addItem($dur);
1694 if ($a_mode ==
'create') {
1695 if (!is_object($this->rec)) {
1696 include_once(
'./Modules/Session/classes/class.ilEventRecurrence.php');
1699 include_once(
'./Services/Calendar/classes/Form/class.ilRecurrenceInputGUI.php');
1702 $rec->setRecurrence($this->rec);
1703 $this->form->addItem($rec);
1707 $lp->
setInfo($this->lng->txt(
"sess_lp_preset_info"));
1708 $lp->setChecked(
true);
1709 $this->form->addItem($lp);
1713 $section->setTitle($this->lng->txt(
'event_section_information'));
1717 $title =
new ilTextInputGUI($this->lng->txt(
'event_title'),
'title');
1718 $title->setRequired(
true);
1719 $title->setValue($this->object->getTitle());
1720 $title->setSize(50);
1721 $title->setMaxLength(70);
1722 $this->form->addItem($title);
1726 $desc->
setValue($this->object->getLongDescription());
1729 $this->form->addItem($desc);
1733 $desc->
setValue($this->object->getLocation());
1736 $this->form->addItem($desc);
1739 $details =
new ilTextAreaInputGUI($this->lng->txt(
'event_details_workflow'),
'details');
1740 $details->
setValue($this->object->getDetails());
1741 $details->setCols(50);
1742 $details->setRows(4);
1743 $this->form->addItem($details);
1745 if ($a_mode ==
'create') {
1750 $this->record_gui->setRefId((
int)
$_GET[
'ref_id']);
1751 $this->record_gui->setPropertyForm($this->form);
1752 $this->record_gui->parse();
1757 $this->object->getId()
1760 $this->record_gui->parse();
1766 $section->setTitle($this->lng->txt(
'event_tutor_data'));
1770 $tutor_name =
new ilTextInputGUI($this->lng->txt(
'tutor_name'),
'tutor_name');
1771 $tutor_name->setValue($this->object->getName());
1772 $tutor_name->setSize(20);
1773 $tutor_name->setMaxLength(70);
1774 $this->form->addItem($tutor_name);
1777 $tutor_email =
new ilTextInputGUI($this->lng->txt(
'tutor_email'),
'tutor_email');
1778 $tutor_email->setValue($this->object->getEmail());
1779 $tutor_email->setSize(20);
1780 $tutor_email->setMaxLength(70);
1781 $this->form->addItem($tutor_email);
1784 $tutor_phone =
new ilTextInputGUI($this->lng->txt(
'tutor_phone'),
'tutor_phone');
1785 $tutor_phone->setValue($this->object->getPhone());
1786 $tutor_phone->setSize(20);
1787 $tutor_phone->setMaxLength(70);
1788 $this->form->addItem($tutor_phone);
1791 $section->setTitle($this->lng->txt(
'sess_section_reg'));
1794 include_once
'./Modules/Session/classes/class.ilSessionMembershipRegistrationSettingsGUI.php';
1795 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationSettings.php';
1807 $reg_settings->addMembershipFormElements($this->form,
'');
1811 $section->setTitle($this->lng->txt(
'event_assign_files'));
1815 $files->setFilenames(array(0 =>
''));
1816 $this->form->addItem(
$files);
1819 $section->setTitle($this->lng->txt(
'sess_setting_header_presentation'));
1822 $DIC->object()->commonSettings()->legacyForm($this->form, $this->
object)->addTileImage();
1825 $features->setTitle($this->lng->txt(
'obj_features'));
1826 $this->form->addItem($features);
1828 $this->object->getId(),
1835 $gallery =
new ilCheckboxInputGUI($this->lng->txt(
'sess_show_members'),
'show_members');
1836 $gallery->
setChecked($this->object->getShowMembers());
1837 $gallery->setInfo($this->lng->txt(
'sess_show_participants_info'));
1838 $this->form->addItem($gallery);
1843 $mail_type->
setValue($this->object->getMailToMembersType());
1846 $this->lng->txt(
'sess_mail_admins_only'),
1848 $this->lng->txt(
'sess_mail_admins_only_info')
1850 $mail_type->addOption($mail_tutors);
1853 $this->lng->txt(
'sess_mail_all'),
1855 $this->lng->txt(
'sess_mail_all_info')
1857 $mail_type->addOption($mail_all);
1858 $this->form->addItem($mail_type);
1864 $this->form->
setTitle($this->lng->txt(
'event_table_create'));
1865 $this->form->addCommandButton(
'save', $this->lng->txt(
'event_btn_add'));
1866 $this->form->addCommandButton(
'saveAndAssignMaterials', $this->lng->txt(
'event_btn_add_edit'));
1867 $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
1871 $this->form->setTitle($this->lng->txt(
'event_table_update'));
1872 $this->form->addCommandButton(
'update', $this->lng->txt(
'save'));
1873 $this->form->addCommandButton(
'cancelEdit', $this->lng->txt(
'cancel'));
1888 $event = $this->form->getItemByPostVar(
'event');
1889 if ($event->getStart() && $event->getEnd()) {
1890 $this->
object->getFirstAppointment()->setStartingTime($event->getStart()->get(
IL_CAL_UNIX));
1891 $this->
object->getFirstAppointment()->setEndingTime($event->getStart()->get(
IL_CAL_UNIX));
1892 $this->
object->getFirstAppointment()->setStart($event->getStart());
1893 $this->
object->getFirstAppointment()->setEnd($event->getEnd());
1894 $this->
object->getFirstAppointment()->toggleFulltime($event->getStart() instanceof
ilDate);
1908 $this->
object->setRegistrationType((
int)
$_POST[
'registration_type']);
1910 switch ($this->object->getRegistrationType()) {
1912 $this->
object->enableCannotParticipateOption((
bool) $_POST[
'show_cannot_participate_direct']);
1915 $this->
object->enableCannotParticipateOption((
bool) $_POST[
'show_cannot_participate_request']);
1918 $this->
object->enableCannotParticipateOption(
false);
1924 $this->
object->setRegistrationMaxUsers((
int) $_POST[
'registration_max_members']);
1925 $this->
object->enableRegistrationUserLimit((
int) $_POST[
'registration_membership_limited']);
1926 $this->
object->setShowMembers((
int) $_POST[
'show_members']);
1927 $this->
object->setMailToMembersType((
int) $_POST[
'mail_type']);
1929 switch ((
int) $_POST[
'waiting_list']) {
1931 $this->
object->enableRegistrationWaitingList(
true);
1932 $this->
object->setWaitingListAutoFill(
true);
1936 $this->
object->enableRegistrationWaitingList(
true);
1937 $this->
object->setWaitingListAutoFill(
false);
1941 $this->
object->enableRegistrationWaitingList(
false);
1942 $this->
object->setWaitingListAutoFill(
false);
1955 include_once(
'./Modules/Session/classes/class.ilSessionRecurrence.php');
1958 switch (
$_POST[
'frequence']) {
1960 $this->rec->setFrequenceType(
$_POST[
'frequence']);
1961 $this->rec->setInterval((
int)
$_POST[
'count_DAILY']);
1965 $this->rec->setFrequenceType($_POST[
'frequence']);
1966 $this->rec->setInterval((
int) $_POST[
'count_WEEKLY']);
1967 if (is_array($_POST[
'byday_WEEKLY'])) {
1973 $this->rec->setFrequenceType($_POST[
'frequence']);
1974 $this->rec->setInterval((
int) $_POST[
'count_MONTHLY']);
1975 switch ((
int) $_POST[
'subtype_MONTHLY']) {
1981 switch ((
int) $_POST[
'monthly_byday_day']) {
1984 $this->rec->setBYSETPOS((
int) $_POST[
'monthly_byday_num']);
1985 $this->rec->setBYDAY(
'MO,TU,WE,TH,FR');
1990 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_byday_num']);
1994 $this->rec->setBYDAY((
int) $_POST[
'monthly_byday_num'] . $_POST[
'monthly_byday_day']);
2000 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_bymonthday']);
2006 $this->rec->setFrequenceType($_POST[
'frequence']);
2007 $this->rec->setInterval((
int) $_POST[
'count_YEARLY']);
2008 switch ((
int) $_POST[
'subtype_YEARLY']) {
2014 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_byday']);
2015 $this->rec->setBYDAY((
int) $_POST[
'yearly_byday_num'] . $_POST[
'yearly_byday']);
2019 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_by_monthday']);
2020 $this->rec->setBYMONTHDAY((
int) $_POST[
'yearly_bymonthday']);
2027 switch ((
int)
$_POST[
'until_type']) {
2029 $this->rec->setFrequenceUntilDate(null);
2034 $this->rec->setFrequenceUntilDate(null);
2035 $this->rec->setFrequenceUntilCount((
int) $_POST[
'count']);
2039 $frequence = $this->form->getItemByPostVar(
'frequence');
2040 $end = $frequence->getRecurrence()->getFrequenceUntilDate();
2041 $this->rec->setFrequenceUntilCount(0);
2042 $this->rec->setFrequenceUntilDate($end);
2057 return mktime($time[
'h'], $time[
'm'], 0, $date[
'm'], $date[
'd'], $date[
'y']);
2070 $ilLocator = $DIC[
'ilLocator'];
2074 include_once
'./Modules/Session/classes/class.ilSessionAppointment.php';
2075 $title = strlen($this->object->getTitle()) ? (
': ' . $this->object->getTitle()) :
'';
2076 $title = $this->
object->getFirstAppointment()->appointmentToString() . $title;
2078 $ilLocator->addItem($title, $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2092 $tree = $DIC->repositoryTree();
2093 $ctrl = $DIC->ctrl();
2095 $parent_id =
$tree->getParentId($this->object->getRefId());
2101 $parent_class =
'ilObj' . $parent_class .
'GUI';
2103 $ctrl->setParameterByClass($parent_class,
"ref_id", $parent_id);
2104 $ctrl->redirectByClass($parent_class,
"view");
2118 $ilAccess = $DIC[
'ilAccess'];
2119 $ilTabs = $DIC[
'ilTabs'];
2120 $tree = $DIC[
'tree'];
2121 $ilCtrl = $DIC[
'ilCtrl'];
2122 $ilHelp = $DIC[
'ilHelp'];
2125 $ilHelp->setScreenIdComponent(
"sess");
2127 $parent_id =
$tree->getParentId($this->object->getRefId());
2132 $this->tabs_gui->setBackTarget(
2133 $this->lng->txt(
'back_to_' . $parent_type .
'_content'),
2134 $ilCtrl->getLinkTarget($this,
"redirectToParentContentPage")
2137 $this->tabs_gui->addTarget(
2139 $this->ctrl->getLinkTarget($this,
'infoScreen')
2142 if ($ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
2143 $this->tabs_gui->addTarget(
2145 $this->ctrl->getLinkTarget($this,
'edit')
2148 if ($ilAccess->checkAccess(
'manage_materials',
'', $this->object->getRefId())) {
2149 $this->tabs_gui->addTab(
2151 $this->lng->txt(
'crs_materials'),
2152 $this->ctrl->getLinkTarget($this,
'materials')
2157 $tree = $DIC[
'tree'];
2158 $parent_id =
$tree->getParentId((
int) $_REQUEST[
'ref_id']);
2165 $this->tabs_gui->addTarget(
2166 "obj_tool_setting_booking",
2167 $this->ctrl->getLinkTargetByClass(array(
"ilbookinggatewaygui"),
"")
2172 $is_participant = $this->
object->getMembersObject()->isAssigned(
$ilUser->getId());
2174 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
2178 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
2180 $this->tabs_gui->addTarget(
2181 'learning_progress',
2182 $this->ctrl->getLinkTargetByClass(array(
'ilobjsessiongui',
'illearningprogressgui'),
''),
2184 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
2189 if ($ilAccess->checkAccess(
'edit_metadata',
'', $this->ref_id)) {
2191 $mdtab = $mdgui->getTab();
2193 $this->tabs_gui->addTab(
2195 $this->lng->txt(
'meta_data'),
2202 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
2203 $this->tabs_gui->addTarget(
2205 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""),
2213 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
2214 $this->tabs_gui->addTarget(
2216 $this->ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm"),
2217 array(
"perm",
"info",
"owner"),
2231 include_once
'./Modules/Session/classes/class.ilEventItems.php';
2232 $event_items =
new ilEventItems($this->object->getId());
2234 $event_items->update();
2248 $tmp_data = array();
2249 foreach ($a_usr_ids as $usr_id) {
2250 $tmp_data[$usr_id] = array();
2263 if (!$this->container_ref_id) {
2279 $ilCtrl = $DIC[
'ilCtrl'];
2280 $tree = $DIC[
'tree'];
2282 $parent_id =
$tree->getParentId((
int) $_REQUEST[
'ref_id']);
2284 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $parent_id);
2286 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
2296 $local_roles =
$GLOBALS[
'DIC']->rbac()->review()->getRolesOfRoleFolder($this->object->getRefId(),
false);
2298 foreach ($local_roles as $role_id) {
2300 if (substr($title, 0, 19) ==
'il_sess_participant') {
2314 return $GLOBALS[
'DIC']->rbac()->review()->getRolesOfRoleFolder($this->object->getRefId(),
false);
2324 $link = chr(13) . chr(10) . chr(13) . chr(10);
2325 $link .= $this->lng->txt(
'sess_mail_permanent_link');
2326 $link .= chr(13) . chr(10) . chr(13) . chr(10);
2327 include_once
'./Services/Link/classes/class.ilLink.php';
2329 return rawurlencode(base64_encode($link));
2337 return parent::importFileObject($parent_id, $a_catch_errors);
getItems()
get assigned items
static lookupTemplateId($a_ref_id)
Lookup template id ilDB $ilDB.
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
This class represents an option in a radio group.
setTitle($a_title)
Set Title.
loadRecurrenceSettings()
load recurrence settings
const IL_CAL_FREQ_MONTHLY
redirectToParentContentPageObject()
Redirect to parent content page.
removeItems($a_items)
Remove specific items from the DB.
eventsListObject()
list sessions of all user
initCreateForm($a_new_type)
showJoinRequestButton(ilToolbarGUI $ilToolbar=null)
static getItemsByEvent($a_event_id)
Get session material / event items.
afterSaveCallback(ilObject $a_obj)
Custom callback after object is created (in parent containert.
static _unregister($a_usr_id, $a_event_id)
registerObject()
register to session
GUI class for the workflow of copying objects.
setPropertyForm($form)
set property form object
sendFileObject()
send file
membersObject()
Redirect to member adminsitration.
importEditFormPostValues()
Load edit form values from post.
saveMaterialsObject()
save material assignment
updateObject()
update object
updateSessionTypeObject()
change session type
__showButton($a_cmd, $a_text, $a_target='')
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
applyFilter()
Apply filter.
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
This class is used for inegration of the booking manager as a service into other repository objects...
unregisterObject($a_refuse_participation=false)
unregister from session
static setUseRelativeDates($a_status)
set use relative dates
static _lookupTitle($a_id)
lookup object title
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
static resetCaches()
Reset internal caches.
prepareOutput($a_show_subobjects=true)
executeCommand()
execute command
getCurrentObject()
Get session object.
static _isRegistered($a_usr_id, $a_event_id)
Base class for attendance lists.
static _goto($a_target)
goto
getAttendanceListUserData($a_user_id, $a_filters)
Get user data for attendance list.
static getInstance($a_ref_id)
Get instance by ref_id.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
calculateDateList(ilDateTime $a_start, ilDateTime $a_end, $a_limit=-1)
calculate date list
readMemberData($a_usr_ids)
Used for waiting list.
addLocatorItems()
Add session locator.
refuseParticipationObject()
refuse participation
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
static switchTemplate($a_ref_id, $a_new_tpl_id)
static _modifyItemGUI( $a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
We need a static version of this, e.g.
GUI class for public user profile presentation.
__toUnix($date, $time)
protected
getLocalRoles()
get all local roles
getDefaultMemberRole()
Get default member role.
createRecurringSessions($a_activate_lp=true)
create recurring sessions
static http()
Fetches the global http state from ILIAS.
resetFilter()
Reset filter.
setInfoObject($info)
get info sections
static _sortIds($a_ids, $a_table, $a_field, $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.
GUI class for membership features.
Calculates an ilDateList for a given calendar entry and recurrence rule.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
const IL_CAL_FREQ_DAILY
Model of calendar entry recurrcences.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
initContainer($a_init_participants=false)
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
const REGISTRATION_LIMITED_USERS
static _register($a_usr_id, $a_event_id)
saveObject($a_redirect_on_success=true)
save object
static initDomEvent(ilGlobalTemplateInterface $a_main_tpl=null)
Init YUI DomEvent.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
showJoinRequestButtonInCalendar(ilToolbarGUI $a_ilToolbar)
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _lookupType($a_id, $a_reference=false)
lookup object type
cancelEditObject()
Cancel editigin type $ilCtrl type $tree.
static getInstance($a_ref_id)
Get instance.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
initForm(string $a_mode)
Init Form.
deleteFilesObject()
delete files
materialsObject()
show material assignment
createMailSignature()
Create a course mail signature.
const LP_MODE_DEACTIVATED
joinObject()
Called from info screen.
static _lookupAboStatus($a_id)
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
redirectToRefId($a_ref_id, $a_cmd="")
redirects to (repository) view per ref id usually to a container and usually used at the end of a sav...
Render add new item selector.
__construct(Container $dic, ilPlugin $plugin)
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
removeMaterialsObject()
Remove materials from the current object.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
getCreationMode()
get creation mode
getRefId()
get reference id public
modifyItemGUI($a_item_list_gui, $a_item_data, $a_show_path)
Modify Item ListGUI for presentation in container type $tree.
confirmDeleteFilesObject()
confirm delete files
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
getContainerRefId()
container ref id
static deleteUserEntry($a_usr_id, $a_obj_id)
Delete one user entry.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance($a_obj_id)
get instance by obj_id
importFileObject($parent_id=null, $a_catch_errors=true)
Import.
addItem($a_item_ref_id)
Add one item.
initAttendanceList()
Init attendance list object.
addHeaderAction()
Add header action menu.
static factory($a_type)
Get list gui by type This method caches all the returned list guis.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
attendanceListObject()
show attendance list selection
saveAndAssignMaterialsObject()
Save and assign sessoin materials.
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
printAttendanceListObject()
print attendance list
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
Confirmation screen class.
postUpdateMaterials()
redirect to list of materials without offset/page.