4 include_once(
'./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';
39 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
47 $this->lng->loadLanguageModule(
"event");
48 $this->lng->loadLanguageModule(
'crs');
49 $this->lng->loadLanguageModule(
'trac');
66 $next_class = $this->ctrl->getNextClass($this);
67 $cmd = $this->ctrl->getCmd();
73 case "ilinfoscreengui":
78 case 'ilpermissiongui':
79 $this->tabs_gui->setTabActive(
'perm_settings');
80 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
82 $ret = $this->ctrl->forwardCommand($perm_gui);
85 case 'ilcourseitemadministrationgui':
86 include_once
'Modules/Course/classes/class.ilCourseItemAdministrationGUI.php';
87 $this->tabs_gui->clearSubTabs();
88 $this->ctrl->setReturn($this,
'info');
90 $this->ctrl->forwardCommand($item_adm_gui);
93 case 'ilobjectcopygui':
94 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
97 $this->ctrl->forwardCommand($cp);
102 $this->tabs_gui->setTabActive(
"export");
103 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
105 $exp_gui->addFormat(
"xml");
106 $ret = $this->ctrl->forwardCommand($exp_gui);
117 if (
$cmd !=
"infoScreenObject")
141 $title = strlen($this->object->getTitle()) ? (
': '.$this->object->getTitle()) :
'';
143 include_once
'./Modules/Session/classes/class.ilSessionAppointment.php';
144 $this->tpl->setTitle(
145 $this->object->getFirstAppointment()->appointmentToString().$title);
160 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
164 $this->ctrl->returnToParent($this);
177 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
191 $this->ctrl->redirect($this,
'infoScreen');
204 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
208 $this->ctrl->returnToParent($this);
219 public static function _goto($a_target)
223 if($ilAccess->checkAccess(
'visible',
"", $a_target))
225 $_GET[
"cmd"] =
"infoScreen";
226 $_GET[
"ref_id"] = $a_target;
227 include(
"repository.php");
230 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
238 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
248 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
261 $this->ctrl->setCmd(
"showSummary");
262 $this->ctrl->setCmdClass(
"ilinfoscreengui");
274 if (
$course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs'))
276 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
277 include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
287 $this->object->getRefId());
303 $this->tabs_gui->setTabActive(
'info_short');
305 $appointment_obj = $this->
object->getFirstAppointment();
307 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
310 if($this->object->enabledRegistration())
312 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
315 $ilToolbar->addFormButton($this->lng->txt(
'event_unregister'),
'join');
323 $ilToolbar->addFormButton($this->lng->txt(
'join_session'),
'join');
325 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
329 if(strlen($this->object->getLocation()) or strlen($this->object->getDetails()))
331 $info->addSection($this->lng->txt(
'event_section_information'));
333 if(strlen(
$location = $this->object->getLocation()))
335 $info->addProperty($this->lng->txt(
'event_location'),
336 nl2br($this->object->getLocation()));
338 if(strlen($this->object->getDetails()))
340 $info->addProperty($this->lng->txt(
'event_details_workflow'),
341 nl2br($this->object->getDetails()));
345 if($this->object->hasTutorSettings())
347 $info->addSection($this->lng->txt(
'event_tutor_data'));
348 if(strlen($fullname = $this->object->getName()))
350 $info->addProperty($this->lng->txt(
'event_lecturer'),
353 if(strlen($email = $this->object->getEmail()))
355 $info->addProperty($this->lng->txt(
'tutor_email'),
358 if(strlen($phone = $this->object->getPhone()))
360 $info->addProperty($this->lng->txt(
'tutor_phone'),
365 include_once
'./Modules/Session/classes/class.ilSessionObjectListGUIFactory.php';
366 include_once
'./Modules/Session/classes/class.ilEventItems.php';
367 include_once
'./Modules/Course/classes/class.ilCourseItems.php';
372 $parent_id = $tree->getParentId($this->object->getRefId());
374 $eventItems = $items->getItemsByEvent($this->object->getId());
375 include_once
'./Services/Container/classes/class.ilContainerSorting.php';
379 $this->object->getId(),
383 foreach($eventItems as $item)
385 $item_id = $item[
'ref_id'];
391 $list_gui->setContainerObject($this);
394 $html .= $list_gui->getListItemHTML(
404 $info->addSection($this->lng->txt(
'event_materials'));
411 $this->ctrl->forwardCommand($info);
414 require_once
'Services/Tracking/classes/class.ilChangeEvent.php';
416 $this->
object->getId(), $ilUser->getId());
442 if(!is_object($this->
object))
446 $this->ctrl->setParameter($this,
'new_type',
'sess');
448 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_create.html',
'Modules/Session');
449 $this->tpl->setVariable(
'EVENT_ADD_TABLE',$this->form->getHTML());
453 $this->tpl->setVariable(
"IMPORT", $this->form->getHTML());
466 $lng->loadLanguageModule(
"sess");
468 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
470 $this->form->setTableWidth(
'600px');
471 $this->form->setTarget(
"_top");
474 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
477 $fi->setRequired(
true);
478 $this->form->addItem($fi);
480 $this->form->addCommandButton(
"importFile", $lng->txt(
"import"));
481 $this->form->addCommandButton(
"cancel", $lng->txt(
"cancel"));
482 $this->form->setTitle($lng->txt($a_new_type.
"_import"));
484 $this->form->setFormAction($ilCtrl->getFormAction($this));
499 if (!$rbacsystem->checkAccess(
"create",
$_GET[
"ref_id"], $new_type))
501 $this->ilias->raiseError($this->lng->txt(
"no_create_permission"), $this->ilias->error_obj->MESSAGE);
503 $this->ctrl->setParameter($this,
"new_type", $new_type);
505 if ($this->form->checkInput())
508 include_once(
"./Services/Export/classes/class.ilImport.php");
510 $new_id = $imp->importObject($newObj, $_FILES[
"importfile"][
"tmp_name"],
511 $_FILES[
"importfile"][
"name"], $new_type);
516 $newObj->createReference();
517 $newObj->putInTree($_GET[
"ref_id"]);
518 $newObj->setPermissions($_GET[
"ref_id"]);
521 $this->ctrl->returnToParent($this);
526 $this->form->setValuesByPost();
527 $tpl->setContent($this->form->getHtml());
546 $this->ctrl->setParameter($this,
'ref_id',$this->object->getRefId());
547 $this->ctrl->redirect($this,
'materials');
568 $ilErr->setMessage(
'');
569 if(!$this->form->checkInput()) {
570 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
573 $this->
object->validate();
574 $this->
object->getFirstAppointment()->validate();
576 if(strlen($ilErr->getMessage()))
583 $this->
object->create();
584 $this->
object->createReference();
585 $this->
object->putInTree(
$_GET[
"ref_id"]);
586 $this->
object->setPermissions(
$_GET[
"ref_id"]);
589 $this->
object->getFirstAppointment()->setSessionId($this->object->getId());
590 $this->
object->getFirstAppointment()->create();
599 include_once
'./Modules/Course/classes/class.ilCourseItems.php';
603 if($a_redirect_on_success)
606 $this->ctrl->returnToParent($this);
617 include_once
'./Modules/Session/classes/class.ilEventItems.php';
624 if(!isset($_FILES[
'files'][
'name'][$counter]))
628 if(!strlen($_FILES[
'files'][
'name'][$counter]))
634 include_once
'./Modules/File/classes/class.ilObjFile.php';
637 $file->setDescription(
'');
639 $file->setFileType($_FILES[
'files'][
'type'][$counter]);
640 $file->setFileSize($_FILES[
'files'][
'size'][$counter]);
642 $new_ref_id =
$file->createReference();
643 $file->putInTree($tree->getParentId($this->object->getRefId()));
644 $file->setPermissions($tree->getParentId($this->object->getRefId()));
645 $file->createDirectory();
646 $file->getUploadFile(
647 $_FILES[
'files'][
'tmp_name'][$counter],
648 $_FILES[
'files'][
'name'][$counter]
651 $items[] = $new_ref_id;
673 if(!$this->rec->getFrequenceType())
677 include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrenceCalculator.php');
680 $period_start = clone $this->
object->getFirstAppointment()->getStart();
683 $period_end = clone $this->
object->getFirstAppointment()->getStart();
687 $period_diff = $this->
object->getFirstAppointment()->getEnd()->get(
IL_CAL_UNIX) -
688 $this->
object->getFirstAppointment()->getStart()->get(
IL_CAL_UNIX);
689 $parent_id = $tree->getParentId($this->object->getRefId());
691 include_once
'./Modules/Session/classes/class.ilEventItems.php';
696 foreach($date_list->get() as $date)
703 $new_obj = $this->
object->cloneObject($parent_id);
705 $new_obj->getFirstAppointment()->setStartingTime($date->get(
IL_CAL_UNIX));
706 $new_obj->getFirstAppointment()->setEndingTime($date->get(
IL_CAL_UNIX) + $period_diff);
707 $new_obj->getFirstAppointment()->update();
726 $this->tabs_gui->setTabActive(
'edit_properties');
729 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_edit.html',
'Modules/Session');
730 $this->tpl->setVariable(
'EVENT_EDIT_TABLE',$this->form->getHTML());
732 if(!count($this->object->getFiles()))
737 foreach($this->object->getFiles() as
$file)
739 $table_data[
'id'] =
$file->getFileId();
740 $table_data[
'filename'] =
$file->getFileName();
741 $table_data[
'filetype'] =
$file->getFileType();
742 $table_data[
'filesize'] =
$file->getFileSize();
744 $rows[] = $table_data;
747 include_once(
"./Modules/Session/classes/class.ilSessionFileTableGUI.php");
749 $table_gui->setTitle($this->lng->txt(
"event_files"));
750 $table_gui->setData($rows);
751 $table_gui->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
752 $table_gui->addMultiCommand(
"confirmDeleteFiles", $this->lng->txt(
"delete"));
753 $table_gui->setSelectAllCheckbox(
"file_id");
754 $this->tpl->setVariable(
'EVENT_FILE_TABLE',$table_gui->getHTML());
773 $ilErr->setMessage(
'');
774 if(!$this->form->checkInput())
776 $ilErr->setMessage($this->lng->txt(
'err_check_input'));
778 $this->
object->validate();
779 $this->
object->getFirstAppointment()->validate();
781 if(strlen($ilErr->getMessage()))
788 $this->
object->update();
789 $this->
object->getFirstAppointment()->update();
794 $this->ctrl->redirect($this,
'edit');
795 #$this->object->initFiles();
796 #$this->editObject();
809 $this->tabs_gui->setTabActive(
'edit_properties');
811 if(!count(
$_POST[
'file_id']))
818 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
822 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"deleteFiles"));
823 $c_gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
824 $c_gui->setCancel($this->lng->txt(
"cancel"),
"edit");
825 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"deleteFiles");
828 foreach(
$_POST[
"file_id"] as $file_id)
831 if(
$file->getSessionId() != $this->
object->getEventId())
837 $c_gui->addItem(
"file_id[]", $file_id,
$file->getFileName());
840 $this->tpl->setContent($c_gui->getHTML());
853 if(!count(
$_POST[
'file_id']))
859 foreach(
$_POST[
'file_id'] as $id)
864 $this->
object->initFiles();
880 $this->tabs_gui->setTabActive(
'crs_materials');
882 include_once
'Modules/Session/classes/class.ilEventItems.php';
883 $this->event_items =
new ilEventItems($this->object->getId());
884 $items = $this->event_items->
getItems();
886 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_materials.html',
'Modules/Session');
887 #$this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
889 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this,
'materials'));
891 $this->tpl->setVariable(
"COLL_TITLE_IMG_ALT",$this->lng->txt(
'events'));
892 $this->tpl->setVariable(
"TABLE_TITLE",$this->lng->txt(
'event_assign_materials_table'));
893 $this->tpl->setVariable(
"TABLE_INFO",$this->lng->txt(
'event_assign_materials_info'));
895 $this->course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
896 if(!$this->course_ref_id)
901 $nodes = $tree->getSubTree($tree->getNodeData($this->course_ref_id));
903 foreach($nodes as $node)
906 if ($objDefinition->isSideBlock($node[
'type']) or $node[
'type'] ==
'sess')
911 if($node[
'type'] ==
'rolf')
919 $this->tpl->setCurrentBlock(
"material_row");
922 $this->tpl->setVariable(
'IMG_ALT',$this->lng->txt(
'obj_'.$node[
'type']));
924 $this->tpl->setVariable(
"CHECK_COLL",
ilUtil::formCheckbox(in_array($node[
'ref_id'],$items) ? 1 : 0,
925 'items[]',$node[
'ref_id']));
926 $this->tpl->setVariable(
"COLL_TITLE",$node[
'title']);
928 if(strlen($node[
'description']))
930 $this->tpl->setVariable(
"COLL_DESC",$node[
'description']);
932 $this->tpl->setVariable(
"ASSIGNED_IMG_OK",in_array($node[
'ref_id'],$items) ?
935 $this->tpl->setVariable(
"ASSIGNED_STATUS",$this->lng->txt(
'event_material_assigned'));
936 $this->tpl->setVariable(
"COLL_PATH",$this->
formatPath($node[
'ref_id']));
937 $this->tpl->parseCurrentBlock();
941 $this->tpl->setVariable(
"SELECT_ALL",$this->lng->txt(
'select_all'));
943 $this->tpl->setVariable(
"BTN_SAVE",$this->lng->txt(
'save'));
955 include_once
'./Modules/Session/classes/class.ilEventItems.php';
957 $this->event_items =
new ilEventItems($this->object->getId());
959 $this->event_items->update();
971 global
$tree,$ilUser;
974 $this->tabs_gui->setTabActive(
'event_edit_members');
976 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_members.html',
'Modules/Session');
978 include_once
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
981 $this->lng->txt(
'print'),
982 $this->ctrl->getLinkTarget($this,
'printViewMembers'),
984 $toolbar->addButton($this->lng->txt(
'sess_gen_attendance_list'),
985 $this->ctrl->getLinkTarget($this,
'attendanceList'));
987 $this->tpl->setVariable(
'ACTION_BUTTONS',$toolbar->getHTML());
989 $this->course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
991 if(!$this->course_ref_id)
997 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
998 include_once
'./Modules/Session/classes/class.ilEventParticipants.php';
1007 if(count($admins = $members_obj->getAdmins()))
1009 include_once(
'./Modules/Session/classes/class.ilSessionParticipantsTableGUI.php');
1010 if($ilUser->getPref(
'sess_admin_hide'))
1013 $this->ctrl->setParameter($this,
'admin_hide',0);
1014 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1015 $this->lng->txt(
'show'),
1018 $this->ctrl->clearParameters($this);
1023 $this->ctrl->setParameter($this,
'admin_hide',1);
1024 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1025 $this->lng->txt(
'hide'),
1028 $this->ctrl->clearParameters($this);
1031 $table->addCommandButton(
'updateMembers',$this->lng->txt(
'save'));
1032 $table->setTitle($this->lng->txt(
'event_tbl_admins'),
'icon_usr.gif',$this->lng->txt(
'event_tbl_admins'));
1033 $table->enableRegistration($this->object->enabledRegistration());
1034 $table->setParticipants($admins);
1036 $this->tpl->setVariable(
'ADMINS',$table->getHTML());
1040 if(count($tutors = $members_obj->getTutors()))
1042 include_once(
'./Modules/Session/classes/class.ilSessionParticipantsTableGUI.php');
1043 if($ilUser->getPref(
'sess_tutor_hide'))
1046 $this->ctrl->setParameter($this,
'tutor_hide',0);
1047 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1048 $this->lng->txt(
'show'),
1051 $this->ctrl->clearParameters($this);
1056 $this->ctrl->setParameter($this,
'tutor_hide',1);
1057 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1058 $this->lng->txt(
'hide'),
1061 $this->ctrl->clearParameters($this);
1063 $table->addCommandButton(
'updateMembers',$this->lng->txt(
'save'));
1064 $table->setTitle($this->lng->txt(
'event_tbl_tutors'),
'icon_usr.gif',$this->lng->txt(
'event_tbl_admins'));
1065 $table->enableRegistration($this->object->enabledRegistration());
1066 $table->setParticipants($tutors);
1068 $this->tpl->setVariable(
'TUTORS',$table->getHTML());
1072 if(count($members = $members_obj->getMembers()))
1074 include_once(
'./Modules/Session/classes/class.ilSessionParticipantsTableGUI.php');
1075 if($ilUser->getPref(
'sess_member_hide'))
1078 $this->ctrl->setParameter($this,
'member_hide',0);
1079 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1080 $this->lng->txt(
'show'),
1083 $this->ctrl->clearParameters($this);
1088 $this->ctrl->setParameter($this,
'member_hide',1);
1089 $table->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1090 $this->lng->txt(
'hide'),
1093 $this->ctrl->clearParameters($this);
1095 $table->addCommandButton(
'updateMembers',$this->lng->txt(
'save'));
1096 $table->setTitle($this->lng->txt(
'event_tbl_members'),
'icon_usr.gif',$this->lng->txt(
'event_tbl_admins'));
1097 $table->enableRegistration($this->object->enabledRegistration());
1098 $table->setParticipants($members);
1100 $this->tpl->setVariable(
'MEMBERS',$table->getHTML());
1119 if(isset(
$_GET[
'admin_hide']))
1121 $ilUser->writePref(
'sess_admin_hide',(
int)
$_GET[
'admin_hide']);
1123 if(isset(
$_GET[
'tutor_hide']))
1125 $ilUser->writePref(
'sess_tutor_hide',(
int)
$_GET[
'tutor_hide']);
1127 if(isset(
$_GET[
'member_hide']))
1129 $ilUser->writePref(
'sess_member_hide',(
int)
$_GET[
'member_hide']);
1146 include_once
'Modules/Course/classes/class.ilCourseParticipants.php';
1147 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1149 $this->course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
1151 if(!$this->course_ref_id)
1157 $_POST[
'participants'] = is_array(
$_POST[
'participants']) ?
$_POST[
'participants'] : array();
1162 $visible =
$_POST[
'visible_participants'] ?
$_POST[
'visible_participants'] : array();
1163 foreach($visible as $user)
1169 $part->setParticipated(isset(
$_POST[
'participants'][$user]) ?
true :
false);
1171 $part->updateUser();
1185 global
$tpl,$ilTabs;
1189 $ilTabs->setTabActive(
'event_edit_members');
1192 $tpl->setContent($this->form->getHTML());
1204 include_once(
'./Services/Form/classes/class.ilPropertyFormGUI.php');
1207 $this->form->setFormAction($this->ctrl->getFormAction($this));
1208 $this->form->setTarget(
'_blank');
1209 $this->form->setTitle($this->lng->txt(
'sess_gen_attendance_list'));
1214 $this->form->addItem($mark);
1217 $comment->setOptionTitle($this->lng->txt(
'sess_gen_comment'));
1221 $signature =
new ilCheckboxInputGUI($this->lng->txt(
'sess_signature'),
'show_signature');
1222 $signature->
setOptionTitle($this->lng->txt(
'sess_gen_signature'));
1223 $signature->setValue(1);
1224 $this->form->addItem($signature);
1227 $part->setTitle($this->lng->txt(
'event_participant_selection'));
1228 $this->form->addItem($part);
1233 $admin->setValue(1);
1234 $this->form->addItem($admin);
1239 $tutor->setValue(1);
1240 $this->form->addItem($tutor);
1243 $member =
new ilCheckboxInputGUI($this->lng->txt(
'event_tbl_members'),
'show_members');
1245 $member->setValue(1);
1246 $member->setChecked(
true);
1247 $this->form->addItem($member);
1249 $this->form->addCommandButton(
'printAttendanceList',$this->lng->txt(
'sess_print_attendance_list'));
1250 #$this->form->addCommandButton('members', $this->lng->txt('cancel'));
1263 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1264 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
1268 $this->course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
1270 if(!$this->course_ref_id)
1277 $event_app = $this->
object->getFirstAppointment();
1281 $this->tpl =
new ilTemplate(
'tpl.main.html',
true,
true);
1284 $this->tpl->setVariable(
"LOCATION_STYLESHEET",$location_stylesheet);
1286 $tpl =
new ilTemplate(
'tpl.sess_attendance_list_print.html',
true,
true,
'Modules/Session');
1288 $tpl->setVariable(
"ATTENDANCE_LIST",$this->lng->txt(
'sess_attendance_list'));
1289 $tpl->setVariable(
"EVENT_NAME",$this->object->getTitle() ?
': '.$this->object->getTitle() :
'');
1294 $tpl->setVariable(
"TXT_NAME",$this->lng->txt(
'name'));
1297 $tpl->setVariable(
"TXT_MARK",$this->lng->txt(
'trac_mark'));
1299 if(
$_POST[
'show_comment'])
1301 $tpl->setVariable(
"TXT_COMMENT",$this->lng->txt(
'trac_comment'));
1303 if(
$_POST[
'show_signature'])
1305 $tpl->setVariable(
"TXT_SIGNATURE",$this->lng->txt(
'sess_signature'));
1308 if(
$_POST[
'show_admins'])
1310 $members = array_merge((array) $members,$members_obj->getAdmins());
1312 if(
$_POST[
'show_tutors'])
1314 $members = array_merge((array) $members,$members_obj->getTutors());
1316 if(
$_POST[
'show_members'])
1318 $members = array_merge((array) $members,$members_obj->getMembers());
1320 $members =
ilUtil::_sortIds((array) $members,
'usr_data',
'lastname',
'usr_id');
1322 foreach($members as $user_id)
1324 $user_data = $event_part->getUser($user_id);
1328 $tpl->setVariable(
"MARK",$user_data[
'mark'] ? $user_data[
'mark'] :
' ');
1330 if(
$_POST[
'show_comment'])
1332 $tpl->setVariable(
"COMMENT",$user_data[
'comment'] ? $user_data[
'comment'] :
' ');
1334 if(
$_POST[
'show_signature'])
1336 $tpl->touchBlock(
'row_signature');
1339 $tpl->setCurrentBlock(
"member_row");
1341 $tpl->setVariable(
"LASTNAME",
$name[
'lastname']);
1342 $tpl->setVariable(
"FIRSTNAME",
$name[
'firstname']);
1344 $tpl->parseCurrentBlock();
1347 $this->tpl->setVariable(
"CONTENT",
$tpl->get());
1348 $this->tpl->setVariable(
"BODY_ATTRIBUTES",
'onload="window.print()"');
1363 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1364 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
1368 $this->course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
1370 if(!$this->course_ref_id)
1377 $event_app = $this->
object->getFirstAppointment();
1380 $this->tpl =
new ilTemplate(
'tpl.main.html',
true,
true);
1383 $this->tpl->setVariable(
"LOCATION_STYLESHEET",$location_stylesheet);
1385 $tpl =
new ilTemplate(
'tpl.sess_members_print.html',
true,
true,
'Modules/Session');
1387 #$tpl->setVariable("EVENT",$this->lng->txt('event'));
1388 $tpl->setVariable(
"EVENT_NAME",$this->object->getTitle() ?
': '.$this->object->getTitle() : $this->
object->getTitle());
1394 if(!$ilUser->getPref(
'sess_admin_hide') and count($members_obj->getAdmins()))
1396 $tmp[
'txt'] = $this->lng->txt(
'event_tbl_admins');
1397 $tmp[
'users'] = $members_obj->getAdmins();
1399 $participants[] = $tmp;
1401 if(!$ilUser->getPref(
'sess_tutor_hide') and count($members_obj->getTutors()))
1403 $tmp[
'txt'] = $this->lng->txt(
'event_tbl_tutors');
1404 $tmp[
'users'] = $members_obj->getTutors();
1406 $participants[] = $tmp;
1408 if(!$ilUser->getPref(
'sess_member_hide') and count($members_obj->getMembers()))
1410 $tmp[
'txt'] = $this->lng->txt(
'event_tbl_members');
1411 $tmp[
'users'] = $members_obj->getMembers();
1413 $participants[] = $tmp;
1416 foreach((array) $participants as $participants_data)
1418 $members =
ilUtil::_sortIds($participants_data[
'users'],
'usr_data',
'lastname',
'usr_id');
1419 foreach($members as $user_id)
1422 $user_data = $event_part->getUser($user_id);
1424 if($this->object->enabledRegistration())
1426 $tpl->setCurrentBlock(
"reg_col");
1427 $tpl->setVariable(
"REGISTERED",$event_part->isRegistered($user_id) ?
"X" :
"");
1428 $tpl->parseCurrentBlock();
1430 $tpl->setVariable(
"COMMENT",$user_data[
'comment']);
1432 $tpl->setCurrentBlock(
"member_row");
1434 $tpl->setVariable(
"LASTNAME",
$name[
'lastname']);
1435 $tpl->setVariable(
"FIRSTNAME",
$name[
'firstname']);
1437 $tpl->setVariable(
"MARK",$user_data[
'mark']);
1438 $tpl->setVariable(
"PARTICIPATED",$event_part->hasParticipated($user_id) ?
"X" :
"");
1439 $tpl->parseCurrentBlock();
1442 $tpl->setCurrentBlock(
'part_group');
1443 $tpl->setVariable(
'GROUP_NAME',$participants_data[
'txt']);
1444 $tpl->setVariable(
"TXT_NAME",$this->lng->txt(
'name'));
1445 $tpl->setVariable(
"TXT_MARK",$this->lng->txt(
'trac_mark'));
1446 $tpl->setVariable(
"TXT_COMMENT",$this->lng->txt(
'trac_comment'));
1447 $tpl->setVariable(
"TXT_PARTICIPATED",$this->lng->txt(
'event_tbl_participated'));
1448 if($this->object->enabledRegistration())
1450 $tpl->setVariable(
"TXT_REGISTERED",$this->lng->txt(
'event_tbl_registered'));
1452 $tpl->parseCurrentBlock();
1456 $this->tpl->setVariable(
"CONTENT",
$tpl->get());
1457 $this->tpl->setVariable(
"BODY_ATTRIBUTES",
'onload="window.print()"');
1474 if(!$ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1476 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),$ilErr->MESSAGE);
1479 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.sess_list.html',
'Modules/Session');
1480 $this->
__showButton($this->ctrl->getLinkTarget($this,
'exportCSV'),$this->lng->txt(
'event_csv_export'));
1482 include_once
'Modules/Course/classes/class.ilCourseParticipants.php';
1483 include_once
'Modules/Session/classes/class.ilEventParticipants.php';
1485 $this->tpl->addBlockfile(
"EVENTS_TABLE",
"events_table",
"tpl.table.html");
1486 $this->tpl->addBlockfile(
'TBL_CONTENT',
'tbl_content',
'tpl.sess_list_row.html',
'Modules/Session');
1489 $members = $members_obj->getParticipants();
1494 $tbl->setTitle($this->lng->txt(
"event_overview"),
1496 $this->lng->txt(
'obj_usr'));
1497 $this->ctrl->setParameter($this,
'offset',(
int)
$_GET[
'offset']);
1499 $course_ref_id = $tree->checkForParentType($this->object->getRefId(),
'crs');
1501 foreach($tree->getSubtree($tree->getNodeData(
$course_ref_id),
false,
'sess') as $event_id)
1504 if(!is_object($tmp_event) or $tmp_event->getType() !=
'sess')
1508 $events[] = $tmp_event;
1511 $headerNames = array();
1512 $headerVars = array();
1513 $colWidth = array();
1515 $headerNames[] = $this->lng->txt(
'name');
1516 $headerVars[] =
"name";
1517 $colWidth[] =
'20%';
1519 for ($i = 1; $i <= count($events); $i++)
1521 $headerNames[] = $i;
1522 $headerVars[] =
"event_".$i;
1523 $colWidth[] = 80/count($events).
"%";
1526 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
1527 $tbl->setHeaderNames($headerNames);
1528 $tbl->setHeaderVars($headerVars, $this->ctrl->getParameterArray($this,
'eventsList'));
1529 $tbl->setColumnWidth($colWidth);
1531 $tbl->setOrderColumn($_GET[
"sort_by"]);
1532 $tbl->setOrderDirection($_GET[
"sort_order"]);
1533 $tbl->setOffset($_GET[
"offset"]);
1534 $tbl->setLimit($ilUser->getPref(
"hits_per_page"));
1535 $tbl->setMaxCount(count($members));
1536 $tbl->setFooter(
"tblfooter",$this->lng->txt(
"previous"),$this->lng->txt(
"next"));
1538 $sliced_users = array_slice($members,$_GET[
'offset'],
$_SESSION[
'tbl_limit']);
1539 $tbl->disable(
'sort');
1543 foreach($sliced_users as $user_id)
1545 foreach($events as $event_obj)
1547 $this->tpl->setCurrentBlock(
"eventcols");
1552 $this->tpl->setVariable(
"IMAGE_PARTICIPATED", $event_part->hasParticipated($user_id) ?
1556 $this->tpl->setVariable(
"PARTICIPATED", $event_part->hasParticipated($user_id) ?
1557 $this->lng->txt(
'event_participated') :
1558 $this->lng->txt(
'event_not_participated'));
1561 $this->tpl->parseCurrentBlock();
1564 $this->tpl->setCurrentBlock(
"tbl_content");
1567 $this->tpl->setVariable(
"LASTNAME",
$name[
'lastname']);
1568 $this->tpl->setVariable(
"FIRSTNAME",
$name[
'firstname']);
1570 $this->tpl->parseCurrentBlock();
1573 $this->tpl->setVariable(
"HEAD_TXT_LEGEND", $this->lng->txt(
"legend"));
1574 $this->tpl->setVariable(
"HEAD_TXT_DIGIT", $this->lng->txt(
"event_digit"));
1575 $this->tpl->setVariable(
"HEAD_TXT_EVENT", $this->lng->txt(
"event"));
1576 $this->tpl->setVariable(
"HEAD_TXT_LOCATION", $this->lng->txt(
"event_location"));
1577 $this->tpl->setVariable(
"HEAD_TXT_DATE_TIME",$this->lng->txt(
"event_date_time"));
1579 foreach($events as $event_obj)
1581 $this->tpl->setCurrentBlock(
"legend_loop");
1582 $this->tpl->setVariable(
"LEGEND_CSS_ROW",
ilUtil::switchColor($counter++,
'tblrow1',
'tblrow2'));
1583 $this->tpl->setVariable(
"LEGEND_DIGIT", $i++);
1584 $this->tpl->setVariable(
"LEGEND_EVENT_TITLE", $event_obj->getTitle());
1585 $this->tpl->setVariable(
"LEGEND_EVENT_DESCRIPTION", $event_obj->getDescription());
1586 $this->tpl->setVariable(
"LEGEND_EVENT_LOCATION", $event_obj->getLocation());
1587 $this->tpl->setVariable(
"LEGEND_EVENT_APPOINTMENT", $event_obj->getFirstAppointment()->appointmentToString());
1588 $this->tpl->parseCurrentBlock();
1602 if(is_object($this->form))
1607 $this->lng->loadLanguageModule(
'dateplaner');
1609 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1611 include_once(
'./Services/YUI/classes/class.ilYuiUtil.php');
1615 $this->form->setMultipart(
true);
1616 $this->form->setTableWidth(
'600px');
1617 $this->form->setFormAction($this->ctrl->getFormAction($this));
1618 $this->form->setMultipart(
true);
1628 $this->lng->loadLanguageModule(
'dateplaner');
1629 include_once
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
1630 #$this->tpl->addJavaScript('./Modules/Session/js/toggle_session_time.js');
1631 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
1633 $dur->
setStartText($this->lng->txt(
'event_start_date'));
1634 $dur->setEndText($this->lng->txt(
'event_end_date'));
1635 $dur->enableToggleFullTime(
1636 $this->lng->txt(
'event_fulltime_info'),
1637 $this->
object->getFirstAppointment()->enabledFulltime() ?
true : false
1639 $dur->setMinuteStepSize(5);
1640 $dur->setShowTime(
true);
1641 $dur->setShowDate(
true);
1642 $dur->setStart($this->object->getFirstAppointment()->getStart());
1643 $dur->setEnd($this->object->getFirstAppointment()->getEnd());
1645 $this->form->addItem($dur);
1664 if($a_mode ==
'create')
1666 if(!is_object($this->rec))
1668 include_once(
'./Modules/Session/classes/class.ilEventRecurrence.php');
1671 include_once(
'./Services/Calendar/classes/Form/class.ilRecurrenceInputGUI.php');
1674 $rec->setRecurrence($this->rec);
1675 $this->form->addItem($rec);
1679 $section->setTitle($this->lng->txt(
'event_section_information'));
1680 $this->form->addItem($section);
1684 $title->setValue($this->object->getTitle());
1686 $title->setMaxLength(70);
1687 $this->form->addItem(
$title);
1691 $desc->setValue($this->object->getLongDescription());
1694 $this->form->addItem(
$desc);
1698 $desc->setValue($this->object->getLocation());
1701 $this->form->addItem(
$desc);
1704 $details =
new ilTextAreaInputGUI($this->lng->txt(
'event_details_workflow'),
'details');
1705 $details->
setValue($this->object->getDetails());
1706 $details->setCols(50);
1707 $details->setRows(4);
1708 $this->form->addItem($details);
1712 $section->setTitle($this->lng->txt(
'event_tutor_data'));
1713 $this->form->addItem($section);
1716 $tutor_name =
new ilTextInputGUI($this->lng->txt(
'tutor_name'),
'tutor_name');
1717 $tutor_name->
setValue($this->object->getName());
1718 $tutor_name->setSize(20);
1719 $tutor_name->setMaxLength(70);
1720 $this->form->addItem($tutor_name);
1723 $tutor_email =
new ilTextInputGUI($this->lng->txt(
'tutor_email'),
'tutor_email');
1724 $tutor_email->
setValue($this->object->getEmail());
1725 $tutor_email->setSize(20);
1726 $tutor_email->setMaxLength(70);
1727 $this->form->addItem($tutor_email);
1730 $tutor_phone =
new ilTextInputGUI($this->lng->txt(
'tutor_phone'),
'tutor_phone');
1731 $tutor_phone->
setValue($this->object->getPhone());
1732 $tutor_phone->setSize(20);
1733 $tutor_phone->setMaxLength(70);
1734 $this->form->addItem($tutor_phone);
1737 $section->setTitle($this->lng->txt(
'crs_further_settings'));
1738 $this->form->addItem($section);
1742 $reg->
setChecked($this->object->enabledRegistration() ?
true :
false);
1743 $reg->setOptionTitle($this->lng->txt(
'event_registration_info'));
1744 $this->form->addItem($reg);
1748 $section->setTitle($this->lng->txt(
'event_assign_files'));
1749 $this->form->addItem($section);
1752 $files->setFilenames(array(0 =>
''));
1753 $this->form->addItem(
$files);
1758 $this->form->setTitle($this->lng->txt(
'event_table_create'));
1761 $this->form->addCommandButton(
'save',$this->lng->txt(
'event_btn_add'));
1762 $this->form->addCommandButton(
'saveAndAssignMaterials',$this->lng->txt(
'event_btn_add_edit'));
1763 $this->form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1768 $this->form->setTitle($this->lng->txt(
'event_table_update'));
1771 $this->form->addCommandButton(
'update',$this->lng->txt(
'save'));
1772 $this->form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1790 $this->
object->getFirstAppointment()->setStartingTime($this->
__toUnix(
$_POST[
'event'][
'start'][
'date'],
$_POST[
'event'][
'start'][
'time']));
1791 $this->
object->getFirstAppointment()->setEndingTime($this->
__toUnix(
$_POST[
'event'][
'end'][
'date'],
$_POST[
'event'][
'end'][
'time']));
1792 $this->
object->getFirstAppointment()->toggleFullTime((
bool)
$_POST[
'event'][
'fulltime']);
1794 include_once(
'./Services/Calendar/classes/class.ilDate.php');
1795 if($this->object->getFirstAppointment()->isFullday())
1797 $start =
new ilDate($_POST[
'event'][
'start'][
'date'][
'y'].
'-'.$_POST[
'event'][
'start'][
'date'][
'm'].
'-'.$_POST[
'event'][
'start'][
'date'][
'd'],
1799 $this->
object->getFirstAppointment()->setStart($start);
1801 $end =
new ilDate($_POST[
'event'][
'end'][
'date'][
'y'].
'-'.$_POST[
'event'][
'end'][
'date'][
'm'].
'-'.$_POST[
'event'][
'end'][
'date'][
'd'],
1803 $this->
object->getFirstAppointment()->setEnd($end);
1807 $start_dt[
'year'] = (int) $_POST[
'event'][
'start'][
'date'][
'y'];
1808 $start_dt[
'mon'] = (int) $_POST[
'event'][
'start'][
'date'][
'm'];
1809 $start_dt[
'mday'] = (int) $_POST[
'event'][
'start'][
'date'][
'd'];
1810 $start_dt[
'hours'] = (int) $_POST[
'event'][
'start'][
'time'][
'h'];
1811 $start_dt[
'minutes'] = (int) $_POST[
'event'][
'start'][
'time'][
'm'];
1814 $this->
object->getFirstAppointment()->setStart($start);
1816 $end_dt[
'year'] = (int) $_POST[
'event'][
'end'][
'date'][
'y'];
1817 $end_dt[
'mon'] = (int) $_POST[
'event'][
'end'][
'date'][
'm'];
1818 $end_dt[
'mday'] = (int) $_POST[
'event'][
'end'][
'date'][
'd'];
1819 $end_dt[
'hours'] = (int) $_POST[
'event'][
'end'][
'time'][
'h'];
1820 $end_dt[
'minutes'] = (int) $_POST[
'event'][
'end'][
'time'][
'm'];
1822 $this->
object->getFirstAppointment()->setEnd($end);
1832 $this->
object->enableRegistration((
int) $_POST[
'registration']);
1843 include_once(
'./Modules/Session/classes/class.ilSessionRecurrence.php');
1846 switch(
$_POST[
'frequence'])
1849 $this->rec->setFrequenceType(
$_POST[
'frequence']);
1850 $this->rec->setInterval((
int)
$_POST[
'count_DAILY']);
1854 $this->rec->setFrequenceType($_POST[
'frequence']);
1855 $this->rec->setInterval((
int) $_POST[
'count_WEEKLY']);
1856 if(is_array($_POST[
'byday_WEEKLY']))
1863 $this->rec->setFrequenceType($_POST[
'frequence']);
1864 $this->rec->setInterval((
int) $_POST[
'count_MONTHLY']);
1865 switch((
int) $_POST[
'subtype_MONTHLY'])
1872 switch((
int) $_POST[
'monthly_byday_day'])
1876 $this->rec->setBYSETPOS((
int) $_POST[
'monthly_byday_num']);
1877 $this->rec->setBYDAY(
'MO,TU,WE,TH,FR');
1882 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_byday_num']);
1886 $this->rec->setBYDAY((
int) $_POST[
'monthly_byday_num'].$_POST[
'monthly_byday_day']);
1892 $this->rec->setBYMONTHDAY((
int) $_POST[
'monthly_bymonthday']);
1898 $this->rec->setFrequenceType($_POST[
'frequence']);
1899 $this->rec->setInterval((
int) $_POST[
'count_YEARLY']);
1900 switch((
int) $_POST[
'subtype_YEARLY'])
1907 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_byday']);
1908 $this->rec->setBYDAY((
int) $_POST[
'yearly_byday_num'].$_POST[
'yearly_byday']);
1912 $this->rec->setBYMONTH((
int) $_POST[
'yearly_bymonth_by_monthday']);
1913 $this->rec->setBYMONTHDAY((
int) $_POST[
'yearly_bymonthday']);
1920 switch((
int)
$_POST[
'until_type'])
1923 $this->rec->setFrequenceUntilDate(null);
1928 $this->rec->setFrequenceUntilDate(null);
1929 $this->rec->setFrequenceUntilCount((
int) $_POST[
'count']);
1933 $end_dt[
'year'] = (int) $_POST[
'until_end'][
'date'][
'y'];
1934 $end_dt[
'mon'] = (int) $_POST[
'until_end'][
'date'][
'm'];
1935 $end_dt[
'mday'] = (int) $_POST[
'until_end'][
'date'][
'd'];
1937 $this->rec->setFrequenceUntilCount(0);
1953 return mktime($time[
'h'],$time[
'm'],0,$date[
'm'],$date[
'd'],$date[
'y']);
1966 $path = $this->lng->txt(
'path') .
': ';
1968 foreach($tree->getPathFull($a_ref_id,$this->course_ref_id) as $node)
1970 if($node[
'ref_id'] != $a_ref_id)
1977 $path .= $node[
'title'];
1993 if (is_object($this->
object))
1995 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2007 global $ilAccess,$ilTabs,
$tree;
2009 $parent_id = $tree->getParentId($this->object->getRefId());
2011 $tabs_gui->setBackTarget($this->lng->txt(
'back_to_crs_content'),
'repository.php?ref_id='.$parent_id);
2012 $tabs_gui->addTarget(
'info_short',
2013 $this->ctrl->getLinkTarget($this,
'infoScreen'));
2015 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
2017 $tabs_gui->addTarget(
'edit_properties',
2018 $this->ctrl->getLinkTarget($this,
'edit'));
2019 $tabs_gui->addTarget(
'crs_materials',
2020 $this->ctrl->getLinkTarget($this,
'materials'));
2021 $tabs_gui->addTarget(
'event_edit_members',
2022 $this->ctrl->getLinkTarget($this,
'members'));
2026 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
2028 $ilTabs->addTarget(
"export",
2029 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""),
"",
"ilexportgui");
2034 if ($ilAccess->checkAccess(
'edit_permission',
"", $this->object->getRefId()))
2036 $tabs_gui->addTarget(
"perm_settings",
2037 $this->ctrl->getLinkTargetByClass(
"ilpermissiongui",
"perm"), array(
"perm",
"info",
"owner"),
'ilpermissiongui');