6 include_once
'./Services/Calendar/classes/class.ilCalendarSettings.php';
84 $this->ctrl = $DIC->ctrl();
85 $this->lng = $DIC->language();
86 $this->lng->loadLanguageModule(
'dateplaner');
88 $this->tpl = $DIC[
"tpl"];
89 $this->tabs_gui = $DIC->tabs();
90 $this->
user = $DIC->user();
91 $this->rbacsystem = $DIC->rbac()->system();
92 $this->help = $DIC[
"ilHelp"];
93 $this->ui = $DIC->ui();
94 $this->toolbar = $DIC->toolbar();
95 $this->ref_id = $a_ref_id;
96 $this->category_id =
$_GET[
"category_id"];
97 $this->ctrl->setParameter($this,
'category_id', $_REQUEST[
'category_id']);
100 $this->ctrl->saveParameter($this,
'backpd');
102 include_once(
'./Services/Calendar/classes/class.ilCalendarCategories.php');
105 include_once
'./Services/Calendar/classes/class.ilCalendarUserSettings.php';
107 $this->repository_mode =
true;
109 if ($this->category_id > 0) {
111 include_once(
"./Services/Calendar/classes/class.ilCalendarVisibility.php");
113 $vis->forceVisibility($this->category_id);
128 include_once(
"./Services/Calendar/classes/class.ilCalendarActions.php");
150 foreach ($this->cats->getCategoriesInfo() as
$info) {
155 $v = $visibility->getVisible();
156 if (!in_array(
$info[
"cat_id"], $v)) {
157 $v[] =
$info[
"cat_id"];
159 $visibility->showSelected($v);
161 $this->ctrl->redirect($this,
"");
177 $cmd = $this->ctrl->getCmd();
181 include_once(
'./Services/Calendar/classes/class.ilCalendarSettings.php');
190 $this->help->setScreenIdComponent(
"cal");
193 case 'selectCHCalendarOfUser':
198 switch ($next_class) {
199 case 'ilcalendarinboxgui':
200 $this->tabs_gui->activateTab(
'cal_agenda');
205 $inbox_gui->addToolbarActions();
210 case 'ilconsultationhoursgui':
211 $this->tabs_gui->activateTab(
'app_consultation_hours');
212 $this->tabs_gui->clearTargets();
215 $this->tabs_gui->setBackTarget(
216 $this->lng->txt(
'cal_back_to_cal'),
220 include_once
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHoursGUI.php';
222 $this->ctrl->forwardCommand($gui);
228 case 'ilcalendarmonthgui':
229 $this->tabs_gui->activateTab(
'cal_agenda');
235 $month_gui->addToolbarActions();
239 case 'ilcalendarweekgui':
240 $this->tabs_gui->activateTab(
'cal_agenda');
245 $week_gui->addToolbarActions();
250 case 'ilcalendardaygui':
251 $this->tabs_gui->activateTab(
'cal_agenda');
256 $day_gui->addToolbarActions();
260 case 'ilcalendarusersettingsgui':
261 $this->ctrl->setReturn($this,
'');
262 $this->tabs_gui->activateTab(
'settings');
265 include_once(
'./Services/Calendar/classes/class.ilCalendarUserSettingsGUI.php');
267 $this->ctrl->forwardCommand($user_settings);
271 case 'ilcalendarappointmentgui':
272 $this->ctrl->setReturn($this,
'');
273 $this->tabs_gui->activateTab(
$_SESSION[
'cal_last_tab']);
275 include_once(
'./Services/Calendar/classes/class.ilCalendarAppointmentGUI.php');
277 $this->ctrl->forwardCommand($app);
280 case 'ilcalendarsubscriptiongui':
281 $this->ctrl->setReturn($this,
'');
283 $this->tabs_gui->activateTab(
"cal_agenda");
284 include_once
'./Services/Calendar/classes/class.ilCalendarSubscriptionGUI.php';
286 $this->ctrl->forwardCommand($sub);
292 case 'ilcalendarcategorygui':
293 $this->ctrl->setReturn($this,
'');
294 $this->tabs_gui->activateTab(
"cal_manage");
295 include_once(
'Services/Calendar/classes/class.ilCalendarCategoryGUI.php');
297 if ($this->ctrl->forwardCommand($category)) {
304 #$this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, "")); 312 case 'ilcalendarblockgui':
314 $side_cal->setAvailableDetailLevels(2, 2);
316 $side_cal->setForceMonthView(
true);
317 $this->ctrl->forwardCommand($side_cal);
321 case 'ilpdcalendarblockgui':
323 $side_cal->setAvailableDetailLevels(2, 2);
325 $side_cal->setForceMonthView(
true);
326 $this->ctrl->forwardCommand($side_cal);
330 case 'ilpublicuserprofilegui':
331 include_once(
"./Services/User/classes/class.ilPublicUserProfileGUI.php");
333 $html = $this->ctrl->forwardCommand($user_profile);
334 $this->tpl->setContent(
$html);
338 $cmd = $this->ctrl->getCmd(
"show");
365 $lng->txt(
"app_day") =>
$ctrl->getLinkTargetByClass(
'ilCalendarDayGUI',
''),
366 $lng->txt(
"app_week") =>
$ctrl->getLinkTargetByClass(
'ilCalendarWeekGUI',
''),
367 $lng->txt(
"app_month") =>
$ctrl->getLinkTargetByClass(
'ilCalendarMonthGUI',
''),
368 $lng->txt(
"cal_list") =>
$ctrl->getLinkTargetByClass(
'ilCalendarInboxGUI',
'')
371 $aria_label =
$lng->txt(
"cal_change_calendar_view");
372 $view_control =
$f->viewControl()->mode($actions, $aria_label)->withActive(
$lng->txt($a_active));
374 $toolbar->addComponent($view_control);
376 $ctrl->setParameterByClass(
"ilcalendarappointmentgui",
"seed", $this->seed->get(
IL_CAL_DATE,
''));
377 $ctrl->setParameterByClass(
"ilcalendarappointmentgui",
"app_id",
"");
378 $ctrl->setParameterByClass(
"ilcalendarappointmentgui",
"dt",
"");
380 $extra_button_added =
false;
382 if ($this->category_id == 0 || $this->actions->checkAddEvent($this->category_id)) {
384 $extra_button_added =
true;
385 $add_button =
$f->button()->standard(
386 $lng->txt(
"cal_add_appointment"),
387 $ctrl->getLinkTargetByClass(
"ilcalendarappointmentgui",
"add")
389 $toolbar->addComponent($add_button);
393 if ($this->category_id > 0 && $this->actions->checkAddEvent($this->category_id)) {
394 if (!$extra_button_added) {
397 $add_button =
$f->button()->standard(
398 $lng->txt(
"cal_import_appointments"),
399 $ctrl->getLinkTargetByClass(
"ilcalendarcategorygui",
"importAppointments")
401 $toolbar->addComponent($add_button);
413 if (strlen($next_class = $this->ctrl->getNextClass())) {
416 if ($this->ctrl->getCmdClass() == strtolower(get_class($this))
or $this->ctrl->getCmdClass() ==
'') {
429 return $ilUser->getPref(
'cal_last_class') ?
$ilUser->getPref(
'cal_last_class') :
'ilcalendarinboxgui';
437 if ($this->ctrl->getCmdClass() == strtolower(get_class($this))) {
438 $this->ctrl->setCmdClass(strtolower($a_class));
453 case 'ilcalendarmonthgui':
454 $ilUser->writePref(
'cal_last_class', $a_class);
457 include_once(
'./Services/Calendar/classes/class.ilCalendarMonthGUI.php');
459 $this->ctrl->forwardCommand($month_gui);
463 case 'ilcalendarweekgui':
464 $ilUser->writePref(
'cal_last_class', $a_class);
467 include_once(
'./Services/Calendar/classes/class.ilCalendarWeekGUI.php');
469 $this->ctrl->forwardCommand($week_gui);
473 case 'ilcalendardaygui':
474 $ilUser->writePref(
'cal_last_class', $a_class);
477 include_once(
'./Services/Calendar/classes/class.ilCalendarDayGUI.php');
479 $this->ctrl->forwardCommand($day_gui);
483 case 'ilcalendarinboxgui':
485 if ($view_option =
$_GET[
'cal_agenda_per']) {
490 $ilUser->writePref(
'cal_last_class', $a_class);
491 $_SESSION[
'cal_last_tab'] =
'cal_upcoming_events_header';
493 include_once(
'./Services/Calendar/classes/class.ilCalendarInboxGUI.php');
494 $inbox_gui =
new ilCalendarinboxGUI($this->seed);
495 $this->ctrl->forwardCommand($inbox_gui);
512 $this->ctrl->setCmd(
'');
513 $history =
$ilUser->getPref(
'cal_last_class') ?
$ilUser->getPref(
'cal_last_class') :
'ilcalendarmonthgui';
529 $tpl =
new ilTemplate(
'tpl.cal_side_block.html',
true,
true,
'Services/Calendar');
531 include_once(
"./Services/Calendar/classes/class.ilCalendarBlockGUI.php");
534 include_once(
"./Services/Calendar/classes/class.ilPDCalendarBlockGUI.php");
537 $side_cal->setAvailableDetailLevels(2, 2);
538 $side_cal->setParentGUI(
"ilCalendarPresentationGUI");
539 $side_cal->setForceMonthView(
true);
541 $tpl->setVariable(
'MINICAL',
$ilCtrl->getHTML($side_cal));
543 include_once(
'./Services/Calendar/classes/class.ilCalendarCategoryGUI.php');
545 $tpl->setVariable(
'CATEGORIES',
$ilCtrl->getHTML($cat));
547 $this->tpl->setRightContent(
$tpl->get());
571 $ctrl = $DIC->ctrl();
573 $this->tabs_gui->clearTargets();
574 $ctrl->setParameterByClass(ilCalendarCategoryGUI::class,
"category_id", $_REQUEST[
"category_id"]);
576 $came_from_pd = $_REQUEST[
'backpd'];
578 $this->tabs_gui->setBack2Target(
579 $this->lng->txt(
'back_to_pd'),
580 $this->ctrl->getLinkTargetByClass(ilPersonalDesktopGUI::class,
'jumpToCalendar')
584 $this->tabs_gui->setBackTarget(
586 $this->ctrl->getParentReturn($this)
590 if (array_key_exists(
'backvm', $_REQUEST)) {
591 $this->tabs_gui->setBackTarget(
592 $this->lng->txt(
"back"),
593 $ctrl->getLinkTargetByClass(ilCalendarCategoryGUI::class,
'manage')
596 $ctrl->clearParameterByClass(ilCalendarPresentationGUI::class,
'category_id');
597 $this->tabs_gui->setBackTarget(
598 $this->lng->txt(
"back"),
599 $ctrl->getLinkTargetByClass(
'ilcalendarpresentationgui',
'')
602 $ctrl->setParameterByClass(ilCalendarPresentationGUI::class,
"category_id", $_REQUEST[
"category_id"]);
605 $this->tabs_gui->addTab(
607 $this->lng->txt(
"cal_agenda"),
608 $ctrl->getLinkTargetByClass(ilCalendarPresentationGUI::class,
"")
611 if ($this->actions->checkShareCal($this->category_id)) {
612 $this->tabs_gui->addTab(
614 $this->lng->txt(
"cal_share"),
615 $ctrl->getLinkTargetByClass(ilCalendarCategoryGUI::class,
"shareSearch")
618 if ($this->actions->checkSettingsCal($this->category_id)) {
619 $this->tabs_gui->addTab(
621 $this->lng->txt(
"settings"),
622 $ctrl->getLinkTargetByClass(ilCalendarCategoryGUI::class,
"edit")
626 $this->tabs_gui->activateTab(
'cal_agenda');
637 $access = $DIC->access();
640 $came_from_pd = $_REQUEST[
'backpd'];
642 $this->tabs_gui->clearTargets();
645 $this->tabs_gui->setBack2Target(
646 $this->lng->txt(
'back_to_pd'),
647 $this->ctrl->getLinkTargetByClass(ilPersonalDesktopGUI::class,
'jumpToCalendar')
651 $this->tabs_gui->setBackTarget(
653 $this->ctrl->getParentReturn($this)
658 $category_id = $category->getCategoryID();
661 $this->tabs_gui->addTab(
663 $this->lng->txt(
'cal_agenda'),
664 $this->ctrl->getLinkTarget($this,
'')
668 if ($access->checkAccess(
'edit_event',
'', $this->ref_id)) {
669 $this->ctrl->setParameterByClass(ilCalendarCategoryGUI::class,
'category_id', $category_id);
670 $this->tabs_gui->addTab(
672 $this->lng->txt(
'settings'),
673 $this->ctrl->getLinkTargetByClass(ilCalendarCategoryGUI::class,
'edit')
675 $this->ctrl->clearParameterByClass(ilCalendarCategoryGUI::class,
'category_id');
679 $this->tabs_gui->addTab(
681 $this->lng->txt(
"cal_agenda"),
682 $this->ctrl->getLinkTarget($this,
'')
687 'add_consultation_hours',
692 $this->tabs_gui->addTab(
693 'app_consultation_hours',
694 $this->lng->txt(
'app_consultation_hours'),
695 $this->ctrl->getLinkTargetByClass(ilConsultationHoursGUI::class,
'')
710 $this->tabs_gui->addTarget(
'cal_manage', $this->ctrl->getLinkTargetByClass(
'ilCalendarCategoryGUI',
'manage'));
711 $this->tabs_gui->addTarget(
'settings', $this->ctrl->getLinkTargetByClass(
'ilCalendarUserSettingsGUI',
''));
723 $tpl = $DIC->ui()->mainTemplate();
725 if ($this->category_id) {
734 if ($this->category_id > 0) {
746 switch ($category->getType()) {
748 $header = $this->lng->txt(
'cal_type_personal') .
": " . $category->getTitle();
752 $header = $this->lng->txt(
'cal_type_system') .
": " . $category->getTitle();
756 $header = $this->lng->txt(
'cal_type_' . $category->getObjType()) .
": " . $category->getTitle();
764 $header = $category->getTitle();
771 $this->action_menu->setAsynch(
false);
772 $this->action_menu->setAsynchUrl(
'');
773 $this->action_menu->setListTitle(
$lng->txt(
'actions'));
774 $this->action_menu->setId(
'act_cal');
775 $this->action_menu->setSelectionHeaderClass(
'small');
776 $this->action_menu->setItemLinkClass(
'xsmall');
777 $this->action_menu->setLinksMode(
'il_ContainerItemCommand2');
779 $this->action_menu->setUseImages(
false);
782 $ctrl->setParameterByClass(
"ilcalendarsubscriptiongui",
"category_id", $this->category_id);
783 $this->action_menu->addItem(
$lng->txt(
"cal_ical_url"),
"",
$ctrl->getLinkTargetByClass(
"ilcalendarsubscriptiongui",
""));
786 if ($this->actions->checkDeleteCal($this->category_id)) {
787 $ctrl->setParameterByClass(
"ilcalendarcategorygui",
"category_id", $this->category_id);
788 $this->action_menu->addItem(
$lng->txt(
"cal_delete_cal"),
"",
$ctrl->getLinkTargetByClass(
"ilcalendarcategorygui",
"confirmDelete"));
791 $tpl->setHeaderActionMenu($this->action_menu->getHTML());
805 if (array_key_exists(
'seed', $_REQUEST)) {
813 $this->ctrl->setParameter($this,
'seed', $this->seed->get(
IL_CAL_DATE));
833 foreach ($cats->getCategoriesInfo() as $cat_id =>
$info) {
834 if (
$info[
'remote']) {
843 include_once
'./Services/Calendar/classes/class.ilCalendarRemoteReader.php';
845 $remote->
setUser($category->getRemoteUser());
846 $remote->setPass($category->getRemotePass());
848 $remote->import($category);
859 if ($this->ctrl->getCmdClass() ==
"ilcalendarappointmentgui" || $this->ctrl->getCmdClass() ==
'ilconsultationhoursgui') {
synchroniseExternalCalendars()
Sync external calendars.
Consultation hours editor.
static _getInstance()
get singleton instance
readLastClass()
Read last class from history.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
const MODE_PERSONAL_DESKTOP_MEMBERSHIP
static _lookupFullname($a_user_id)
Lookup Full Name.
static _before(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is before end This method does not consider tz offsets.
initSeed()
init the seed date for presentations (month view, minicalendar)
static getInstance()
Get instance.
static get($a_var)
Get a value.
const CAL_SELECTION_MEMBERSHIP
forwardToClass($a_class)
forward to class
executeCommand()
Execute command.
static set($a_var, $a_val)
Set a value.
getNextClass()
get next class
Stores calendar categories.
const MODE_SINGLE_CALENDAR
Reader for remote ical calendars.
__construct($a_ref_id=0)
Constructor.
Show calendar subscription info.
Calendar blocks, displayed on personal desktop.
static _getInstanceByUserId($a_user_id, $a_ref_id=0)
get instance by user id
showSideBlocks()
show side blocks
GUI class for public user profile presentation.
showViewSelection($a_active="cal_list")
Show view selection.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
getRepositoryMode()
Get RepositoryMode.
static _getInstance()
get instance for logged in user
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
initAndRedirectToConsultationHours()
Init and redirect to consultation hours.
static _getInstanceByObjId($a_obj_id)
get instance by obj_id
addStandardTabs()
add standard tabs
static _getInstance($a_usr_id=0)
get singleton instance
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if(!empty($this->data['faventry'])) $tabs
User interface class for advanced drop-down selection lists.
Administrate calendar appointments.
Calendar blocks, displayed in different contexts, e.g.
addCategoryTabs()
Add tabs for ilCategoryGUI context This cannot be done there since many views (Day Week Agenda) are i...
static redirect($a_script)
loadHistory()
forward to last presentation class
Administration, Side-Block presentation of calendar categories.
const MODE_PERSONAL_DESKTOP_ITEMS