4 include_once(
'./Services/Object/classes/class.ilObjectGUI.php');
5 include_once(
'./Modules/Session/classes/class.ilObjSession.php');
6 include_once(
'./Modules/Session/classes/class.ilSessionFile.php');
7 include_once
'./Services/PersonalDesktop/interfaces/interface.ilDesktopItemHandling.php';
44 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
49 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
52 $this->lng->loadLanguageModule(
"event");
53 $this->lng->loadLanguageModule(
'crs');
54 $this->lng->loadLanguageModule(
'trac');
55 $this->lng->loadLanguageModule(
'sess');
61 $this->logger =
$GLOBALS[
'DIC']->logger()->sess();
75 $next_class = $this->ctrl->getNextClass($this);
76 $cmd = $this->ctrl->getCmd();
80 $GLOBALS[
'DIC']->access()->checkAccess(
'read',
'',
$_GET[
'ref_id'])
82 $GLOBALS[
'DIC'][
'ilNavigationHistory']->addItem(
83 (
int)
$_GET[
'ref_id'],
90 switch ($next_class) {
91 case 'ilsessionmembershipgui':
92 $this->tabs_gui->activateTab(
'members');
93 include_once
'./Modules/Session/classes/class.ilSessionMembershipGUI.php';
95 $this->ctrl->forwardCommand($mem_gui);
98 case "ilinfoscreengui":
103 case 'ilobjectmetadatagui':
105 $this->tabs_gui->setTabActive(
'meta_data');
107 $this->ctrl->forwardCommand($md_gui);
111 case 'ilpermissiongui':
112 $this->tabs_gui->setTabActive(
'perm_settings');
113 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
115 $ret = $this->ctrl->forwardCommand($perm_gui);
118 case 'ilobjectcopygui':
119 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
121 $cp->setType(
'sess');
122 $this->ctrl->forwardCommand($cp);
127 $this->tabs_gui->setTabActive(
"export");
128 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
130 $exp_gui->addFormat(
"xml");
131 $ret = $this->ctrl->forwardCommand($exp_gui);
135 case "ilcommonactiondispatchergui":
136 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
138 $this->ctrl->forwardCommand($gui);
141 case 'ilmembershipgui':
142 $this->ctrl->setReturn($this,
'members');
143 include_once
'./Services/Membership/classes/class.ilMembershipMailGUI.php';
145 $this->ctrl->forwardCommand($mem);
148 case "illearningprogressgui":
149 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
152 $this->
object->getRefId(),
153 $_GET[
'user_id'] ?
$_GET[
'user_id'] : $ilUser->getId()
155 $this->ctrl->forwardCommand($new_gui);
156 $this->tabs_gui->setTabActive(
'learning_progress');
180 $this->ctrl->redirectByClass(
'ilSessionMembershipGUI',
'participants');
197 parent::prepareOutput($a_show_subobjects);
202 include_once
'./Modules/Session/classes/class.ilSessionAppointment.php';
203 $this->tpl->setTitle(
204 $this->
object->getFirstAppointment()->appointmentToString() .
$title 222 include_once
'./Services/Membership/classes/class.ilParticipants.php';
225 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
230 (count($event_part->getRegistered()) >= $this->
getCurrentObject()->getRegistrationMaxUsers())
232 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
234 $wait->addToList($ilUser->getId());
236 $this->ctrl->redirect($this,
'infoScreen');
243 $this->ctrl->redirect($this,
'info');
247 $part->register($ilUser->getId());
249 $this->ctrl->redirect($this,
'infoScreen');
254 $part->addSubscriber($ilUser->getId());
255 $this->ctrl->redirect($this,
'infoScreen');
270 if ($ilUser->isAnonymous()) {
271 $this->ctrl->redirect($this,
'infoScreen');
274 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
285 $this->ctrl->redirect($this,
'infoScreen');
298 include_once
'./Modules/Session/classes/class.ilSessionParticipants.php';
300 if ($part->isSubscriber($ilUser->getId())) {
301 $part->deleteSubscriber($ilUser->getId());
304 $part->unregister($ilUser->getId());
306 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
312 $has_access =
$GLOBALS[
'DIC']->access()->checkAccessOfUser(
319 $parent =
$GLOBALS[
'DIC']->repositoryTree()->getParentId($this->
object->getRefId());
325 $this->ctrl->returnToParent($this);
336 public static function _goto($a_target)
340 $ilAccess = $DIC->access();
342 $lng = $DIC->language();
344 if ($ilAccess->checkAccess(
'visible',
"", $a_target)) {
346 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
349 $lng->txt(
"msg_no_perm_read_item"),
363 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
373 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
386 $this->ctrl->setCmd(
"showSummary");
387 $this->ctrl->setCmdClass(
"ilinfoscreengui");
403 if ($course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs')) {
405 include_once
"Services/Object/classes/class.ilObjectActivation.php";
408 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
409 include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
446 if (!$this->
getCurrentObject()->enabledRegistration() || $ilUser->isAnonymous()) {
450 include_once
'./Modules/Session/classes/class.ilSessionWaitingList.php';
452 include_once
'./Services/Membership/classes/class.ilParticipants.php';
455 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
458 $btn_attend->addCSSClass(
"btn-primary");
459 $this->ctrl->setParameter($this,
"ref_id", $this->
getCurrentObject()->getRefId());
462 $btn_attend->setCaption($this->lng->txt(
"event_unregister"),
false);
463 $btn_attend->setUrl($this->ctrl->getLinkTargetByClass(
array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"unregister"));
464 $ilToolbar->addButtonInstance($btn_attend);
466 } elseif ($part->isSubscriber($ilUser->getId())) {
467 $btn_attend->setCaption($this->lng->txt(
"event_unregister"),
false);
468 $btn_attend->setUrl($this->ctrl->getLinkTargetByClass(
array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"unregister"));
469 $ilToolbar->addButtonInstance($btn_attend);
472 $btn_attend->setCaption($this->lng->txt(
"leave_waiting_list"),
false);
473 $btn_attend->setUrl($this->ctrl->getLinkTargetByClass(
array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"unregister"));
474 $ilToolbar->addButtonInstance($btn_attend);
483 (count($event_part->getRegistered()) >= $this->
getCurrentObject()->getRegistrationMaxUsers())
487 $btn_attend->setCaption($this->lng->txt(
"mem_add_to_wl"),
false);
488 $btn_attend->setUrl($this->ctrl->getLinkTargetByClass(
array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register"));
489 $ilToolbar->addButtonInstance($btn_attend);
496 if (!isset(
$_SESSION[
'sess_hide_info'])) {
498 $btn_attend->setCaption($this->lng->txt(
"join_session"),
false);
499 $btn_attend->setUrl($this->ctrl->getLinkTargetByClass(
array(
"ilRepositoryGUI",
"ilObjSessionGUI"),
"register"));
500 $ilToolbar->addButtonInstance($btn_attend);
520 $this->tabs_gui->setTabActive(
'info_short');
524 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
529 $parent_id = $tree->getParentId($this->
object->getRefId());
537 $lng->loadLanguageModule(
"cntr");
540 foreach ($eventItems as $item) {
542 $list_gui->setContainerObject($this);
546 $html .= $list_gui->getListItemHTML(
555 $info->addSection($this->lng->txt(
'event_materials'));
565 if (strlen($this->
object->getLocation()) or strlen($this->
object->getDetails())) {
566 $info->addSection($this->lng->txt(
'event_section_information'));
570 $this->lng->txt(
'event_location'),
574 if (strlen($this->
object->getDetails())) {
576 $this->lng->txt(
'event_details_workflow'),
583 $record_gui->parse();
586 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
590 if ($this->
object->hasTutorSettings()) {
591 $info->addSection($this->lng->txt(
'event_tutor_data'));
592 if (strlen($fullname = $this->
object->getName())) {
594 $this->lng->txt(
'event_lecturer'),
600 $this->lng->txt(
'tutor_email'),
604 if (strlen($phone = $this->
object->getPhone())) {
606 $this->lng->txt(
'tutor_phone'),
612 $this->ctrl->forwardCommand(
$info);
615 require_once
'Services/Tracking/classes/class.ilChangeEvent.php';
618 $this->
object->getRefId(),
619 $this->
object->getId(),
639 if (!is_object($this->
object)) {
657 $this->ctrl->setParameter($this,
'ref_id', $this->
object->getRefId());
658 $this->ctrl->setParameter($this,
'new_type',
'');
659 $this->ctrl->redirect($this,
'materials');
675 $this->ctrl->saveParameter($this,
"new_type");
678 $ilErr->setMessage(
'');
679 if (!$this->form->checkInput()) {
680 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
683 if (!$this->record_gui->importEditFormPostValues()) {
684 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
690 $this->
object->validate();
691 $this->
object->getFirstAppointment()->validate();
693 if (strlen($ilErr->getMessage())) {
695 $this->form->setValuesByPost();
700 $this->
object->create();
701 $this->
object->createReference();
702 $this->
object->putInTree(
$_GET[
"ref_id"]);
703 $this->
object->setPermissions(
$_GET[
"ref_id"]);
712 $this->record_gui->writeEditForm($this->
object->getId());
718 $this->
object->applyDidacticTemplate($dtpl);
722 if (!$this->form->getInput(
"lp_preset")) {
723 include_once
"Services/Tracking/classes/class.ilLPObjSettings.php";
726 $lp_obj_settings->update(
false);
730 $this->
object->getFirstAppointment()->setSessionId($this->
object->getId());
731 $this->
object->getFirstAppointment()->create();
737 if ($a_redirect_on_success) {
739 $this->ctrl->returnToParent($this);
749 include_once
'./Modules/Session/classes/class.ilEventItems.php';
755 if (!isset($_FILES[
'files'][
'name'][
$counter])) {
758 if (!strlen($_FILES[
'files'][
'name'][$counter])) {
763 include_once
'./Modules/File/classes/class.ilObjFile.php';
766 $file->setDescription(
'');
768 $file->setFileType($_FILES[
'files'][
'type'][$counter]);
769 $file->setFileSize($_FILES[
'files'][
'size'][$counter]);
771 $new_ref_id =
$file->createReference();
772 $file->putInTree($tree->getParentId($this->object->getRefId()));
773 $file->setPermissions($tree->getParentId($this->object->getRefId()));
774 $file->createDirectory();
775 $file->getUploadFile(
776 $_FILES[
'files'][
'tmp_name'][$counter],
777 $_FILES[
'files'][
'name'][$counter]
780 $items[] = $new_ref_id;
801 if (!$this->rec->getFrequenceType()) {
804 include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrenceCalculator.php');
807 $period_start = clone $this->
object->getFirstAppointment()->getStart();
810 $period_end = clone $this->
object->getFirstAppointment()->getStart();
814 $period_diff = $this->
object->getFirstAppointment()->getEnd()->get(
IL_CAL_UNIX) -
815 $this->
object->getFirstAppointment()->getStart()->get(
IL_CAL_UNIX);
816 $parent_id = $tree->getParentId($this->
object->getRefId());
818 include_once
'./Modules/Session/classes/class.ilEventItems.php';
823 foreach ($date_list->get() as $date) {
828 $new_obj = $this->
object->cloneObject($parent_id);
833 $new_obj->applyDidacticTemplate($dtpl);
837 $new_obj->getFirstAppointment()->setStartingTime($date->get(
IL_CAL_UNIX));
838 $new_obj->getFirstAppointment()->setEndingTime($date->get(
IL_CAL_UNIX) + $period_diff);
839 $new_obj->getFirstAppointment()->update();
840 $new_obj->update(
true);
843 if (!$a_activate_lp) {
844 include_once
"Services/Tracking/classes/class.ilLPObjSettings.php";
847 $lp_obj_settings->update(
false);
866 $this->tabs_gui->setTabActive(
'settings');
869 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_edit.html',
'Modules/Session');
870 $this->tpl->setVariable(
'EVENT_EDIT_TABLE', $this->form->getHTML());
872 if (!count($this->
object->getFiles())) {
877 $table_data[
'id'] =
$file->getFileId();
878 $table_data[
'filename'] =
$file->getFileName();
879 $table_data[
'filetype'] =
$file->getFileType();
880 $table_data[
'filesize'] =
$file->getFileSize();
882 $rows[] = $table_data;
885 include_once(
"./Modules/Session/classes/class.ilSessionFileTableGUI.php");
887 $table_gui->setTitle($this->lng->txt(
"event_files"));
888 $table_gui->setData(
$rows);
889 $table_gui->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
890 $table_gui->addMultiCommand(
"confirmDeleteFiles", $this->lng->txt(
"delete"));
891 $table_gui->setSelectAllCheckbox(
"file_id");
892 $this->tpl->setVariable(
'EVENT_FILE_TABLE', $table_gui->getHTML());
908 $old_autofill = $this->
object->hasWaitingListAutoFill();
911 $ilErr->setMessage(
'');
912 if (!$this->form->checkInput()) {
913 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
916 if (!$this->record_gui->importEditFormPostValues()) {
917 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
923 $this->
object->validate();
924 $this->
object->getFirstAppointment()->validate();
926 if (strlen($ilErr->getMessage())) {
932 $this->
object->update();
933 $this->
object->getFirstAppointment()->update();
942 $this->record_gui->writeEditForm();
946 if (!$old_autofill &&
947 $this->
object->hasWaitingListAutoFill()) {
948 $this->
object->handleAutoFill();
952 $this->ctrl->redirect($this,
'edit');
953 #$this->object->initFiles(); 954 #$this->editObject(); 967 $this->tabs_gui->setTabActive(
'settings');
969 if (!count(
$_POST[
'file_id'])) {
975 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
979 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"deleteFiles"));
980 $c_gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
981 $c_gui->setCancel($this->lng->txt(
"cancel"),
"edit");
982 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"deleteFiles");
985 foreach (
$_POST[
"file_id"] as $file_id) {
987 if (
$file->getSessionId() != $this->
object->getEventId()) {
992 $c_gui->addItem(
"file_id[]", $file_id,
$file->getFileName());
995 $this->tpl->setContent($c_gui->getHTML());
1008 if (!count(
$_POST[
'file_id'])) {
1017 $this->
object->initFiles();
1026 $is_course = $is_group =
false;
1029 $this->container_ref_id = $tree->checkForParentType($this->
object->getRefId(),
'grp');
1030 if ($this->container_ref_id) {
1033 if (!$this->container_ref_id) {
1034 $this->container_ref_id = $tree->checkForParentType($this->
object->getRefId(),
'crs');
1035 if ($this->container_ref_id) {
1039 if (!$this->container_ref_id) {
1045 if ($a_init_participants && $this->container_obj_id) {
1047 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
1049 } elseif ($is_group) {
1050 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
1067 $this->tabs_gui->setTabActive(
'crs_materials');
1070 $parent_ref_id = $tree->getParentId($this->
object->getRefId());
1072 include_once
"Services/Object/classes/class.ilObjectAddNewItemGUI.php";
1074 $gui->setDisabledObjectTypes(
array(
"itgr",
"sess"));
1075 $gui->setAfterCreationCallback($this->ref_id);
1078 include_once
'Modules/Session/classes/class.ilEventItems.php';
1081 include_once
'Modules/Session/classes/class.ilSessionMaterialsTableGUI.php';
1083 $tbl->setTitle($this->lng->txt(
"event_assign_materials_table"));
1084 $tbl->setDescription($this->lng->txt(
'event_assign_materials_info'));
1086 $tbl->setMaterialItems($this->event_items->getItems());
1088 $tbl->getDataFromDb();
1090 $this->tpl->setContent(
$tbl->getHTML());
1102 include_once
'./Modules/Session/classes/class.ilEventItems.php';
1109 $checked = $this->event_items->getItems();
1110 $checked = array_diff($checked, $list_items);
1111 $checked = array_merge($checked, $list_items_checked);
1113 $this->event_items->setItems($checked);
1114 $this->event_items->update();
1116 include_once
'Modules/Session/classes/class.ilSessionMaterialsTableGUI.php';
1119 $tbl->storeNavParameter();
1122 $this->ctrl->redirect($this,
'materials');
1135 global
$tpl,$ilTabs;
1138 $ilTabs->setTabActive(
'event_edit_members');
1141 $form =
$list->initForm(
'printAttendanceList');
1142 $tpl->setContent(
$form->getHTML());
1154 include_once
'Services/Membership/classes/class.ilAttendanceList.php';
1160 $list->setId(
'sessattlst');
1162 $event_app = $this->
object->getFirstAppointment();
1166 $desc .=
" " . $this->
object->getTitle();
1167 $list->setTitle($this->lng->txt(
'sess_attendance_list'), $desc);
1169 $list->addPreset(
'mark', $this->lng->txt(
'trac_mark'),
true);
1170 $list->addPreset(
'comment', $this->lng->txt(
'trac_comment'),
true);
1171 if ($this->
object->enabledRegistration()) {
1172 $list->addPreset(
'registered', $this->lng->txt(
'event_tbl_registered'),
true);
1174 $list->addPreset(
'participated', $this->lng->txt(
'event_tbl_participated'),
true);
1175 $list->addBlank($this->lng->txt(
'sess_signature'));
1177 $list->addUserFilter(
'registered', $this->lng->txt(
'event_list_registered_only'));
1192 $list->initFromForm();
1193 $list->setCallback(
array($this,
'getAttendanceListUserData'));
1195 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1198 echo
$list->getFullscreenHTML();
1213 $data = $this->event_part->getUser($a_user_id);
1215 if ($a_filters && $a_filters[
"registered"] && !
$data[
"registered"]) {
1220 $this->lng->txt(
'yes') :
1221 $this->lng->txt(
'no');
1222 $data[
'participated'] =
$data[
'participated'] ?
1223 $this->lng->txt(
'yes') :
1224 $this->lng->txt(
'no');
1240 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
1241 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), $ilErr->MESSAGE);
1244 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_list.html',
'Modules/Session');
1245 $this->
__showButton($this->ctrl->getLinkTarget($this,
'exportCSV'), $this->lng->txt(
'event_csv_export'));
1247 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1249 $this->tpl->addBlockfile(
"EVENTS_TABLE",
"events_table",
"tpl.table.html");
1250 $this->tpl->addBlockfile(
'TBL_CONTENT',
'tbl_content',
'tpl.sess_list_row.html',
'Modules/Session');
1253 $members = $members_obj->getParticipants();
1259 $this->lng->txt(
"event_overview"),
1261 $this->lng->txt(
'obj_usr')
1263 $this->ctrl->setParameter($this,
'offset', (
int)
$_GET[
'offset']);
1265 $course_ref_id = $tree->checkForParentType($this->
object->getRefId(),
'crs');
1267 foreach ($tree->getSubtree($tree->getNodeData($course_ref_id),
false,
'sess') as $event_id) {
1269 if (!is_object($tmp_event) or $tmp_event->getType() !=
'sess') {
1272 $events[] = $tmp_event;
1276 $headerVars =
array();
1277 $colWidth =
array();
1280 $headerVars[] =
"name";
1281 $colWidth[] =
'20%';
1283 for (
$i = 1;
$i <= count($events);
$i++) {
1285 $headerVars[] =
"event_" .
$i;
1286 $colWidth[] = 80/count($events) .
"%";
1289 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
1291 $tbl->setHeaderVars($headerVars, $this->ctrl->getParameterArray($this,
'eventsList'));
1292 $tbl->setColumnWidth($colWidth);
1294 $tbl->setOrderColumn($_GET[
"sort_by"]);
1295 $tbl->setOrderDirection($_GET[
"sort_order"]);
1296 $tbl->setOffset($_GET[
"offset"]);
1297 $tbl->setLimit($ilUser->getPref(
"hits_per_page"));
1298 $tbl->setMaxCount(count($members));
1299 $tbl->setFooter(
"tblfooter", $this->lng->txt(
"previous"), $this->lng->txt(
"next"));
1301 $sliced_users = array_slice($members, $_GET[
'offset'],
$_SESSION[
'tbl_limit']);
1302 $tbl->disable(
'sort');
1306 foreach ($sliced_users as $user_id) {
1307 foreach ($events as $event_obj) {
1308 $this->tpl->setCurrentBlock(
"eventcols");
1313 $this->tpl->setVariable(
"IMAGE_PARTICIPATED", $event_part->hasParticipated($user_id) ?
1317 $this->tpl->setVariable(
"PARTICIPATED", $event_part->hasParticipated($user_id) ?
1318 $this->lng->txt(
'event_participated') :
1319 $this->lng->txt(
'event_not_participated'));
1322 $this->tpl->parseCurrentBlock();
1325 $this->tpl->setCurrentBlock(
"tbl_content");
1328 $this->tpl->setVariable(
"LASTNAME",
$name[
'lastname']);
1329 $this->tpl->setVariable(
"FIRSTNAME",
$name[
'firstname']);
1331 $this->tpl->parseCurrentBlock();
1334 $this->tpl->setVariable(
"HEAD_TXT_LEGEND", $this->lng->txt(
"legend"));
1335 $this->tpl->setVariable(
"HEAD_TXT_DIGIT", $this->lng->txt(
"event_digit"));
1336 $this->tpl->setVariable(
"HEAD_TXT_EVENT", $this->lng->txt(
"event"));
1337 $this->tpl->setVariable(
"HEAD_TXT_LOCATION", $this->lng->txt(
"event_location"));
1338 $this->tpl->setVariable(
"HEAD_TXT_DATE_TIME", $this->lng->txt(
"event_date_time"));
1340 foreach ($events as $event_obj) {
1341 $this->tpl->setCurrentBlock(
"legend_loop");
1343 $this->tpl->setVariable(
"LEGEND_DIGIT",
$i++);
1344 $this->tpl->setVariable(
"LEGEND_EVENT_TITLE", $event_obj->getTitle());
1345 $this->tpl->setVariable(
"LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
1346 $this->tpl->setVariable(
"LEGEND_EVENT_LOCATION", $event_obj->getLocation());
1347 $this->tpl->setVariable(
"LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
1348 $this->tpl->parseCurrentBlock();
1361 if (is_object($this->form)) {
1365 $this->lng->loadLanguageModule(
'dateplaner');
1367 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1369 include_once(
'./Services/YUI/classes/class.ilYuiUtil.php');
1373 $this->form->setMultipart(
true);
1374 $this->form->setTableWidth(
'600px');
1375 $this->form->setFormAction($this->ctrl->getFormAction($this));
1376 $this->form->setMultipart(
true);
1378 if ($a_mode ==
'create') {
1382 $this->lng->loadLanguageModule(
'dateplaner');
1383 include_once
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
1386 $dur->enableToggleFullTime(
1387 $this->lng->txt(
'event_fulltime_info'),
1388 $this->
object->getFirstAppointment()->enabledFulltime() ? true : false
1390 $dur->setShowTime(
true);
1391 $dur->setStart($this->
object->getFirstAppointment()->getStart());
1392 $dur->setEnd($this->
object->getFirstAppointment()->getEnd());
1394 $this->form->addItem($dur);
1413 if ($a_mode ==
'create') {
1414 if (!is_object($this->rec)) {
1415 include_once(
'./Modules/Session/classes/class.ilEventRecurrence.php');
1418 include_once(
'./Services/Calendar/classes/Form/class.ilRecurrenceInputGUI.php');
1421 $rec->setRecurrence($this->rec);
1422 $this->form->addItem($rec);
1426 $lp->
setInfo($this->lng->txt(
"sess_lp_preset_info"));
1427 $lp->setChecked(
true);
1428 $this->form->addItem($lp);
1432 $section->setTitle($this->lng->txt(
'event_section_information'));
1439 $title->setMaxLength(70);
1440 $this->form->addItem(
$title);
1447 $this->form->addItem($desc);
1454 $this->form->addItem($desc);
1457 $details =
new ilTextAreaInputGUI($this->lng->txt(
'event_details_workflow'),
'details');
1459 $details->setCols(50);
1460 $details->setRows(4);
1461 $this->form->addItem($details);
1463 if ($a_mode ==
'create') {
1468 $this->record_gui->setRefId((
int)
$_GET[
'ref_id']);
1477 $this->record_gui->parse();
1482 $section->setTitle($this->lng->txt(
'event_tutor_data'));
1486 $tutor_name =
new ilTextInputGUI($this->lng->txt(
'tutor_name'),
'tutor_name');
1488 $tutor_name->setSize(20);
1489 $tutor_name->setMaxLength(70);
1490 $this->form->addItem($tutor_name);
1493 $tutor_email =
new ilTextInputGUI($this->lng->txt(
'tutor_email'),
'tutor_email');
1495 $tutor_email->setSize(20);
1496 $tutor_email->setMaxLength(70);
1497 $this->form->addItem($tutor_email);
1500 $tutor_phone =
new ilTextInputGUI($this->lng->txt(
'tutor_phone'),
'tutor_phone');
1502 $tutor_phone->setSize(20);
1503 $tutor_phone->setMaxLength(70);
1504 $this->form->addItem($tutor_phone);
1507 $section->setTitle($this->lng->txt(
'sess_section_reg'));
1510 include_once
'./Modules/Session/classes/class.ilSessionMembershipRegistrationSettingsGUI.php';
1511 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationSettings.php';
1522 $reg_settings->addMembershipFormElements($this->form,
'');
1526 $section->setTitle($this->lng->txt(
'event_assign_files'));
1531 $this->form->addItem(
$files);
1534 $features->setTitle($this->lng->txt(
'obj_features'));
1535 $this->form->addItem($features);
1547 $this->form->setTitle($this->lng->txt(
'event_table_create'));
1549 $this->form->addCommandButton(
'save', $this->lng->txt(
'event_btn_add'));
1550 $this->form->addCommandButton(
'saveAndAssignMaterials', $this->lng->txt(
'event_btn_add_edit'));
1551 $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
1556 $this->form->setTitle($this->lng->txt(
'event_table_update'));
1558 $this->form->addCommandButton(
'update', $this->lng->txt(
'save'));
1559 $this->form->addCommandButton(
'cancelEdit', $this->lng->txt(
'cancel'));
1575 $event = $this->form->getItemByPostVar(
'event');
1576 if ($event->getStart() && $event->getEnd()) {
1577 $this->
object->getFirstAppointment()->setStartingTime($event->getStart()->get(
IL_CAL_UNIX));
1578 $this->
object->getFirstAppointment()->setEndingTime($event->getStart()->get(
IL_CAL_UNIX));
1579 $this->
object->getFirstAppointment()->setStart($event->getStart());
1580 $this->
object->getFirstAppointment()->setEnd($event->getEnd());
1581 $this->
object->getFirstAppointment()->toggleFulltime($event->getStart() instanceof
ilDate);
1592 $this->
object->setRegistrationType((
int)
$_POST[
'registration_type']);
1594 $this->
object->setRegistrationMaxUsers((
int) $_POST[
'registration_max_members']);
1595 $this->
object->enableRegistrationUserLimit((
int) $_POST[
'registration_membership_limited']);
1597 switch ((
int) $_POST[
'waiting_list']) {
1599 $this->
object->enableRegistrationWaitingList(
true);
1600 $this->
object->setWaitingListAutoFill(
true);
1604 $this->
object->enableRegistrationWaitingList(
true);
1605 $this->
object->setWaitingListAutoFill(
false);
1609 $this->
object->enableRegistrationWaitingList(
false);
1610 $this->
object->setWaitingListAutoFill(
false);
1623 include_once(
'./Modules/Session/classes/class.ilSessionRecurrence.php');
1626 switch (
$_POST[
'frequence']) {
1628 $this->rec->setFrequenceType(
$_POST[
'frequence']);
1629 $this->rec->setInterval((
int)
$_POST[
'count_DAILY']);
1633 $this->rec->setFrequenceType($_POST[
'frequence']);
1634 $this->rec->setInterval((
int) $_POST[
'count_WEEKLY']);
1635 if (is_array($_POST[
'byday_WEEKLY'])) {
1641 $this->rec->setFrequenceType($_POST[
'frequence']);
1642 $this->rec->setInterval((
int) $_POST[
'count_MONTHLY']);
1643 switch ((
int) $_POST[
'subtype_MONTHLY']) {
1649 switch ((
int) $_POST[
'monthly_byday_day']) {
1652 $this->rec->setBYSETPOS((
int) $_POST[
'monthly_byday_num']);
1653 $this->rec->setBYDAY(
'MO,TU,WE,TH,FR');
1658 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_byday_num']);
1662 $this->rec->setBYDAY((
int) $_POST[
'monthly_byday_num'] . $_POST[
'monthly_byday_day']);
1668 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_bymonthday']);
1674 $this->rec->setFrequenceType($_POST[
'frequence']);
1675 $this->rec->setInterval((
int) $_POST[
'count_YEARLY']);
1676 switch ((
int) $_POST[
'subtype_YEARLY']) {
1682 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_byday']);
1683 $this->rec->setBYDAY((
int) $_POST[
'yearly_byday_num'] . $_POST[
'yearly_byday']);
1687 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_by_monthday']);
1688 $this->rec->setBYMONTHDAY((
int) $_POST[
'yearly_bymonthday']);
1695 switch ((
int)
$_POST[
'until_type']) {
1697 $this->rec->setFrequenceUntilDate(null);
1702 $this->rec->setFrequenceUntilDate(null);
1703 $this->rec->setFrequenceUntilCount((
int) $_POST[
'count']);
1707 $frequence = $this->form->getItemByPostVar(
'frequence');
1708 $end = $frequence->getRecurrence()->getFrequenceUntilDate();
1709 $this->rec->setFrequenceUntilCount(0);
1710 $this->rec->setFrequenceUntilDate(
$end);
1725 return mktime(
$time[
'h'],
$time[
'm'], 0, $date[
'm'], $date[
'd'], $date[
'y']);
1740 include_once
'./Modules/Session/classes/class.ilSessionAppointment.php';
1741 $title = strlen($this->
object->getTitle()) ? (
': ' . $this->
object->getTitle()) :
'';
1742 $title = $this->
object->getFirstAppointment()->appointmentToString() .
$title;
1744 $ilLocator->addItem($title, $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1758 $tree = $DIC->repositoryTree();
1759 $ctrl = $DIC->ctrl();
1761 $parent_id =
$tree->getParentId($this->
object->getRefId());
1767 $parent_class =
'ilObj' . $parent_class .
'GUI';
1769 $ctrl->setParameterByClass($parent_class,
"ref_id", $parent_id);
1770 $ctrl->redirectByClass($parent_class,
"view");
1784 $ilHelp->setScreenIdComponent(
"sess");
1786 $parent_id = $tree->getParentId($this->
object->getRefId());
1791 $this->tabs_gui->setBackTarget(
1792 $this->lng->txt(
'back_to_' . $parent_type .
'_content'),
1793 $ilCtrl->getLinkTarget($this,
"redirectToParentContentPage")
1796 $this->tabs_gui->addTarget(
1798 $this->ctrl->getLinkTarget($this,
'infoScreen')
1801 if ($ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
1802 $this->tabs_gui->addTarget(
1804 $this->ctrl->getLinkTarget($this,
'edit')
1806 $this->tabs_gui->addTarget(
1808 $this->ctrl->getLinkTarget($this,
'materials')
1811 $this->tabs_gui->addTab(
1813 $this->lng->txt(
'event_edit_members'),
1814 $this->ctrl->getLinkTargetByClass(
'ilsessionmembershipgui',
'')
1819 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
1821 $this->tabs_gui->addTarget(
1822 'learning_progress',
1823 $this->ctrl->getLinkTargetByClass(
array(
'ilobjsessiongui',
'illearningprogressgui'),
''),
1825 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
1830 if ($ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
1831 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
1833 $mdtab = $mdgui->getTab();
1835 $this->tabs_gui->addTarget(
1839 "ilobjectmetadatagui" 1846 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1847 $this->tabs_gui->addTarget(
1849 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""),
1857 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId())) {
1858 $this->tabs_gui->addTarget(
1860 $this->ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm"),
1861 array(
"perm",
"info",
"owner"),
1875 include_once
'./Modules/Session/classes/class.ilEventItems.php';
1878 $event_items->update();
1892 $tmp_data =
array();
1893 foreach ($a_usr_ids as $usr_id) {
1894 $tmp_data[$usr_id] =
array();
1907 if (!$this->container_ref_id) {
1923 $parent_id = $tree->getParentId((
int) $_REQUEST[
'ref_id']);
1925 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $parent_id);
1927 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1937 $local_roles =
$GLOBALS[
'DIC']->rbac()->review()->getRolesOfRoleFolder($this->
object->getRefId(),
false);
1939 foreach ($local_roles as $role_id) {
1941 if (substr(
$title, 0, 19) ==
'il_sess_participant') {
1955 return $GLOBALS[
'DIC']->rbac()->review()->getRolesOfRoleFolder($this->
object->getRefId(),
false);
1965 $link = chr(13) . chr(10) . chr(13) . chr(10);
1966 $link .= $this->lng->txt(
'sess_mail_permanent_link');
1967 $link .= chr(13) . chr(10) . chr(13) . chr(10);
1968 include_once
'./Services/Link/classes/class.ilLink.php';
1970 return rawurlencode(base64_encode($link));
getItems()
get assigned items
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
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.
loadRecurrenceSettings()
load recurrence settings
const IL_CAL_FREQ_MONTHLY
redirectToParentContentPageObject()
Redirect to parent content page.
if(isset($_REQUEST['delete'])) $list
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)
initForm($a_mode)
Init Form.
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.
saveMaterialsObject()
save material assignment
updateObject()
update object
__showButton($a_cmd, $a_text, $a_target='')
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
if(!array_key_exists('StateId', $_REQUEST)) $id
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
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 addToDesktop()
Add desktop item public.
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.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
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.
__toUnix($date, $time)
protected
getLocalRoles()
get all local roles
getDefaultMemberRole()
Get default member role.
createRecurringSessions($a_activate_lp=true)
create recurring sessions
setInfoObject($info)
get info sections
if(isset($_POST['submit'])) $form
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)
This class represents a text property in a property form.
static initDomEvent()
Init YUI DomEvent.
const REGISTRATION_LIMITED_USERS
static _register($a_usr_id, $a_event_id)
saveObject($a_redirect_on_success=true)
save object
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
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.
Create styles array
The data for the language used.
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.
deleteFilesObject()
delete files
materialsObject()
show material assignment
createMailSignature()
Create a course mail signature.
static removeFromDesktop()
Remove item from personal desktop public.
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...
Create new PHPExcel object
obj_idprivate
Render add new item selector.
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
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.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
static _getInstance($a_obj_id)
get instance by obj_id
addItem($a_item_ref_id)
Add one item.
setValue($a_value)
Set Value.
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.
attendanceListObject()
show attendance list selection
saveAndAssignMaterialsObject()
Save and assign sessoin materials.
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
unregisterObject()
unregister from session
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
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.