ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilCalendarPresentationGUI Class Reference
+ Collaboration diagram for ilCalendarPresentationGUI:

Public Member Functions

 __construct ($a_ref_id=0)
 Constructor. More...
 
 getRepositoryMode ()
 Get RepositoryMode. More...
 
 executeCommand ()
 Execute command. More...
 
 showViewSelection ($a_active="cal_list")
 Show view selection. More...
 
 getNextClass ()
 get next class More...
 
 readLastClass ()
 Read last class from history. More...
 
 setCmdClass ($a_class)
 
 show ()
 Show. More...
 
 initSeed ()
 init the seed date for presentations (month view, minicalendar) More...
 
 showToolbarAndSidebar ()
 

Protected Member Functions

 initAndRedirectToConsultationHours ()
 Init and redirect to consultation hours. More...
 
 forwardToClass ($a_class)
 forward to class More...
 
 loadHistory ()
 forward to last presentation class More...
 
 showSideBlocks ()
 show side blocks More...
 
 prepareOutput ()
 get tabs More...
 
 synchroniseExternalCalendars ()
 Sync external calendars. More...
 

Protected Attributes

 $ctrl
 
 $lng
 
 $tpl
 
 $tabs_gui
 
 $user
 
 $help
 
 $rbacsystem
 
 $ui
 
 $toolbar
 
 $repository_mode = false
 
 $seed
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilCalendarPresentationGUI::__construct (   $a_ref_id = 0)

Constructor.

public

Parameters

Definition at line 80 of file class.ilCalendarPresentationGUI.php.

References $_GET, $DIC, ilCalendarUserSettings\_getInstance(), ilCalendarCategories\_getInstance(), ilCalendarVisibility\_getInstanceByUserId(), ilCalendarUserSettings\CAL_SELECTION_MEMBERSHIP, ilCalendarActions\getInstance(), ilCalendarCategories\MODE_PERSONAL_DESKTOP_ITEMS, ilCalendarCategories\MODE_PERSONAL_DESKTOP_MEMBERSHIP, ilCalendarCategories\MODE_REPOSITORY, ilCalendarCategories\MODE_SINGLE_CALENDAR, and user().

81  {
82  global $DIC;
83 
84  $this->ctrl = $DIC->ctrl();
85  $this->lng = $DIC->language();
86  $this->lng->loadLanguageModule('dateplaner');
87 
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->saveParameter($this, "category_id");
98 
99 
100  include_once('./Services/Calendar/classes/class.ilCalendarCategories.php');
101  $cats = ilCalendarCategories::_getInstance($this->user->getId());
102 
103  include_once './Services/Calendar/classes/class.ilCalendarUserSettings.php';
104  if ($a_ref_id > 0) {
105  $this->repository_mode = true;
106  }
107  if ($this->category_id > 0) { // single calendar view
108  // ensure activation of this category
109  include_once("./Services/Calendar/classes/class.ilCalendarVisibility.php");
110  $vis = ilCalendarVisibility::_getInstanceByUserId($this->user->getId(), $a_ref_id);
111  $vis->forceVisibility($this->category_id);
112 
113  $cats->initialize(ilCalendarCategories::MODE_SINGLE_CALENDAR, 0, false, $this->category_id);
114  } else {
115  if ($a_ref_id > 0) {
116  $cats->initialize(ilCalendarCategories::MODE_REPOSITORY, (int) $a_ref_id, true);
117  } else {
120  } else {
122  }
123  }
124  }
125 
126  include_once("./Services/Calendar/classes/class.ilCalendarActions.php");
127  $this->actions = ilCalendarActions::getInstance();
128 
129  $this->cats = $cats;
130  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
static getInstance()
Get instance.
user()
Definition: user.php:4
static _getInstanceByUserId($a_user_id, $a_ref_id=0)
get instance by user id
static _getInstance()
get instance for logged in user
static _getInstance($a_usr_id=0)
get singleton instance
+ Here is the call graph for this function:

Member Function Documentation

◆ executeCommand()

ilCalendarPresentationGUI::executeCommand ( )

Execute command.

public

Parameters

Definition at line 171 of file class.ilCalendarPresentationGUI.php.

References $_GET, $_SESSION, $html, $ilUser, $seed, $user, ilCalendarSettings\_getInstance(), forwardToClass(), getNextClass(), getRepositoryMode(), initAndRedirectToConsultationHours(), initSeed(), prepareOutput(), readLastClass(), ilUtil\redirect(), ilUtil\sendFailure(), setCmdClass(), showSideBlocks(), showToolbarAndSidebar(), showViewSelection(), and synchroniseExternalCalendars().

172  {
174 
175  $cmd = $this->ctrl->getCmd();
176  // now next class is not empty, which breaks old consultation hour implementation
177  $next_class = $this->getNextClass();
178 
179  include_once('./Services/Calendar/classes/class.ilCalendarSettings.php');
180  if (!ilCalendarSettings::_getInstance()->isEnabled()) {
181  ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
182  ilUtil::redirect('ilias.php?baseClass=ilPersonalDesktopGUI');
183  }
184 
185  $this->initSeed();
186  $this->prepareOutput();
187 
188  switch ($cmd) {
189  case 'selectCHCalendarOfUser':
191  break;
192  }
193 
194  switch ($next_class) {
195  case 'ilcalendarinboxgui':
196  $this->tabs_gui->activateTab('cal_agenda');
197  $inbox_gui = $this->forwardToClass('ilcalendarinboxgui');
198  if ($this->showToolbarAndSidebar()) {
199  $this->showViewSelection("cal_list");
200  $this->showSideBlocks();
201  $inbox_gui->addToolbarActions();
202  }
203 
204  break;
205 
206  case 'ilconsultationhoursgui':
207  $this->tabs_gui->activateTab('app_consultation_hours');
208  $this->tabs_gui->clearTargets();
209 
210  // No side blocks
211  $this->tabs_gui->setBackTarget(
212  $this->lng->txt('cal_back_to_cal'),
213  $this->ctrl->getLinkTargetByClass($this->readLastClass())
214  );
215 
216  include_once './Services/Calendar/classes/ConsultationHours/class.ilConsultationHoursGUI.php';
217  $gui = new ilConsultationHoursGUI();
218  $this->ctrl->forwardCommand($gui);
219  if ($this->showToolbarAndSidebar()) {
220  $this->showSideBlocks();
221  }
222  return true;
223 
224  case 'ilcalendarmonthgui':
225  $this->tabs_gui->activateTab('cal_agenda');
226  $month_gui = $this->forwardToClass('ilcalendarmonthgui');
227 
228  if ($this->showToolbarAndSidebar()) {
229  $this->showViewSelection("app_month");
230  $this->showSideBlocks();
231  $month_gui->addToolbarActions();
232  }
233  break;
234 
235  case 'ilcalendarweekgui':
236  $this->tabs_gui->activateTab('cal_agenda');
237  $week_gui = $this->forwardToClass('ilcalendarweekgui');
238  if ($this->showToolbarAndSidebar()) {
239  $this->showViewSelection("app_week");
240  $this->showSideBlocks();
241  $week_gui->addToolbarActions();
242  }
243 
244  break;
245 
246  case 'ilcalendardaygui':
247  $this->tabs_gui->activateTab('cal_agenda');
248  $day_gui = $this->forwardToClass('ilcalendardaygui');
249  if ($this->showToolbarAndSidebar()) {
250  $this->showViewSelection("app_day");
251  $this->showSideBlocks();
252  $day_gui->addToolbarActions();
253  }
254  break;
255 
256  case 'ilcalendarusersettingsgui':
257  $this->ctrl->setReturn($this, '');
258  $this->tabs_gui->activateTab('settings');
259  $this->setCmdClass('ilcalendarusersettingsgui');
260 
261  include_once('./Services/Calendar/classes/class.ilCalendarUserSettingsGUI.php');
262  $user_settings = new ilCalendarUserSettingsGUI();
263  $this->ctrl->forwardCommand($user_settings);
264  // No side blocks
265  return true;
266 
267  case 'ilcalendarappointmentgui':
268  $this->ctrl->setReturn($this, '');
269  $this->tabs_gui->activateTab($_SESSION['cal_last_tab']);
270 
271  include_once('./Services/Calendar/classes/class.ilCalendarAppointmentGUI.php');
272  $app = new ilCalendarAppointmentGUI($this->seed, $this->seed, (int) $_GET['app_id']);
273  $this->ctrl->forwardCommand($app);
274  break;
275 
276  case 'ilcalendarsubscriptiongui':
277  $this->ctrl->setReturn($this, '');
278  //$this->tabs_gui->activateTab($_SESSION['cal_last_tab']);
279  $this->tabs_gui->activateTab("cal_agenda");
280  include_once './Services/Calendar/classes/class.ilCalendarSubscriptionGUI.php';
281  $sub = new ilCalendarSubscriptionGUI((int) $_REQUEST['category_id'], (int) $_GET["ref_id"]);
282  $this->ctrl->forwardCommand($sub);
283  if ($this->showToolbarAndSidebar()) {
284  $this->showSideBlocks();
285  }
286  break;
287 
288  case 'ilcalendarcategorygui':
289  $this->ctrl->setReturn($this, '');
290  $this->tabs_gui->activateTab("cal_manage");
291  include_once('Services/Calendar/classes/class.ilCalendarCategoryGUI.php');
292  $category = new ilCalendarCategoryGUI($ilUser->getId(), $this->seed, $this->ref_id);
293  if ($this->ctrl->forwardCommand($category)) {
294  //$this->tabs_gui->activateTab("cal_manage");
295 
296  // no side blocks
297  return;
298  } else {
299  if ($this->getRepositoryMode()) {
300  $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, ""));
301  }
302  //$this->tabs_gui->activateTab($_SESSION['cal_last_tab']);
303  $this->showSideBlocks();
304  break;
305  }
306 
307  // no break
308  case 'ilcalendarblockgui':
309  $side_cal = new ilCalendarBlockGUI();
310  $side_cal->setAvailableDetailLevels(2, 2);
311  $side_cal->setRepositoryMode($this->getRepositoryMode());
312  $side_cal->setForceMonthView(true);
313  $this->ctrl->forwardCommand($side_cal);
314  $this->showSideBlocks();
315  break;
316 
317  case 'ilpdcalendarblockgui':
318  $side_cal = new ilPDCalendarBlockGUI();
319  $side_cal->setAvailableDetailLevels(2, 2);
320  $side_cal->setRepositoryMode($this->getRepositoryMode());
321  $side_cal->setForceMonthView(true);
322  $this->ctrl->forwardCommand($side_cal);
323  $this->showSideBlocks();
324  break;
325 
326  case 'ilpublicuserprofilegui':
327  include_once("./Services/User/classes/class.ilPublicUserProfileGUI.php");
328  $user_profile = new ilPublicUserProfileGUI($_GET["user_id"]);
329  $html = $this->ctrl->forwardCommand($user_profile);
330  $this->tpl->setContent($html);
331  break;
332 
333  default:
334  $cmd = $this->ctrl->getCmd("show");
335  $this->$cmd();
336  $this->showSideBlocks();
337  break;
338  }
339 
340 
342 
343  return true;
344  }
synchroniseExternalCalendars()
Sync external calendars.
Consultation hours editor.
static _getInstance()
get singleton instance
$_SESSION["AccountId"]
readLastClass()
Read last class from history.
$_GET["client_id"]
initSeed()
init the seed date for presentations (month view, minicalendar)
forwardToClass($a_class)
forward to class
Show calendar subscription info.
Calendar blocks, displayed on personal desktop.
GUI class for public user profile presentation.
showViewSelection($a_active="cal_list")
Show view selection.
initAndRedirectToConsultationHours()
Init and redirect to consultation hours.
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Administrate calendar appointments.
Calendar blocks, displayed in different contexts, e.g.
static redirect($a_script)
$html
Definition: example_001.php:87
Administration, Side-Block presentation of calendar categories.
+ Here is the call graph for this function:

◆ forwardToClass()

ilCalendarPresentationGUI::forwardToClass (   $a_class)
protected

forward to class

protected

Definition at line 444 of file class.ilCalendarPresentationGUI.php.

References $_GET, $_SESSION, $ilUser, $user, ilSession\get(), ilSession\set(), and setCmdClass().

Referenced by executeCommand(), and loadHistory().

445  {
447 
448  switch ($a_class) {
449  case 'ilcalendarmonthgui':
450  $ilUser->writePref('cal_last_class', $a_class);
451  $_SESSION['cal_last_tab'] = 'app_month';
452  $this->setCmdClass('ilcalendarmonthgui');
453  include_once('./Services/Calendar/classes/class.ilCalendarMonthGUI.php');
454  $month_gui = new ilCalendarMonthGUI($this->seed);
455  $this->ctrl->forwardCommand($month_gui);
456  return $month_gui;
457  break;
458 
459  case 'ilcalendarweekgui':
460  $ilUser->writePref('cal_last_class', $a_class);
461  $_SESSION['cal_last_tab'] = 'app_week';
462  $this->setCmdClass('ilcalendarweekgui');
463  include_once('./Services/Calendar/classes/class.ilCalendarWeekGUI.php');
464  $week_gui = new ilCalendarWeekGUI($this->seed);
465  $this->ctrl->forwardCommand($week_gui);
466  return $week_gui;
467  break;
468 
469  case 'ilcalendardaygui':
470  $ilUser->writePref('cal_last_class', $a_class);
471  $_SESSION['cal_last_tab'] = 'app_day';
472  $this->setCmdClass('ilcalendardaygui');
473  include_once('./Services/Calendar/classes/class.ilCalendarDayGUI.php');
474  $day_gui = new ilCalendarDayGUI($this->seed);
475  $this->ctrl->forwardCommand($day_gui);
476  return $day_gui;
477  break;
478 
479  case 'ilcalendarinboxgui':
480  #21479
481  if ($view_option = $_GET['cal_agenda_per']) {
482  ilSession::set("cal_list_view", $view_option);
483  } elseif ($view_option = ilSession::get('cal_list_view')) {
484  ilSession::set("cal_list_view", $view_option);
485  }
486  $ilUser->writePref('cal_last_class', $a_class);
487  $_SESSION['cal_last_tab'] = 'cal_upcoming_events_header';
488  $this->setCmdClass('ilcalendarinboxgui');
489  include_once('./Services/Calendar/classes/class.ilCalendarInboxGUI.php');
490  $inbox_gui = new ilCalendarinboxGUI($this->seed);
491  $this->ctrl->forwardCommand($inbox_gui);
492  return $inbox_gui;
493  break;
494  }
495  }
$_SESSION["AccountId"]
$_GET["client_id"]
static get($a_var)
Get a value.
static set($a_var, $a_val)
Set a value.
$ilUser
Definition: imgupload.php:18
Presentation day view.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNextClass()

ilCalendarPresentationGUI::getNextClass ( )

get next class

public

Definition at line 407 of file class.ilCalendarPresentationGUI.php.

References readLastClass().

Referenced by executeCommand().

408  {
409  if (strlen($next_class = $this->ctrl->getNextClass())) {
410  return $next_class;
411  }
412  if ($this->ctrl->getCmdClass() == strtolower(get_class($this)) or $this->ctrl->getCmdClass() == '') {
413  return $this->readLastClass();
414  }
415  }
readLastClass()
Read last class from history.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRepositoryMode()

ilCalendarPresentationGUI::getRepositoryMode ( )

Get RepositoryMode.

Returns
bool repository mode

Definition at line 137 of file class.ilCalendarPresentationGUI.php.

References $repository_mode.

Referenced by executeCommand(), prepareOutput(), and showSideBlocks().

+ Here is the caller graph for this function:

◆ initAndRedirectToConsultationHours()

ilCalendarPresentationGUI::initAndRedirectToConsultationHours ( )
protected

Init and redirect to consultation hours.

Definition at line 145 of file class.ilCalendarPresentationGUI.php.

References $_GET, $info, ilCalendarVisibility\_getInstanceByUserId(), ilCalendarCategory\TYPE_CH, and user().

Referenced by executeCommand().

146  {
147  $visibility = ilCalendarVisibility::_getInstanceByUserId($this->user->getId(), $this->ref_id);
148  foreach ($this->cats->getCategoriesInfo() as $info) {
149  if (
150  $info["type"] == ilCalendarCategory::TYPE_CH &&
151  $info["obj_id"] == $_GET["ch_user_id"]
152  ) {
153  $v = $visibility->getVisible();
154  if (!in_array($info["cat_id"], $v)) {
155  $v[] = $info["cat_id"];
156  }
157  $visibility->showSelected($v);
158  $visibility->save();
159  $this->ctrl->redirect($this, "");
160  }
161  }
162  }
$_GET["client_id"]
user()
Definition: user.php:4
static _getInstanceByUserId($a_user_id, $a_ref_id=0)
get instance by user id
$info
Definition: index.php:5
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initSeed()

ilCalendarPresentationGUI::initSeed ( )

init the seed date for presentations (month view, minicalendar)

public

Definition at line 707 of file class.ilCalendarPresentationGUI.php.

References $_GET, array, date, IL_CAL_DATE, and time.

Referenced by executeCommand().

708  {
709  include_once('Services/Calendar/classes/class.ilDate.php');
710  $this->seed = $_REQUEST['seed'] ? new ilDate($_REQUEST['seed'], IL_CAL_DATE) : new ilDate(date('Y-m-d', time()), IL_CAL_DATE);
711  $_GET['seed'] = $this->seed->get(IL_CAL_DATE, '');
712  $this->ctrl->saveParameter($this, array('seed'));
713  }
$_GET["client_id"]
Class for single dates.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
Create styles array
The data for the language used.
const IL_CAL_DATE
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
+ Here is the caller graph for this function:

◆ loadHistory()

ilCalendarPresentationGUI::loadHistory ( )
protected

forward to last presentation class

protected

Parameters

Definition at line 504 of file class.ilCalendarPresentationGUI.php.

References $ilUser, $user, and forwardToClass().

505  {
507 
508  $this->ctrl->setCmd('');
509  $history = $ilUser->getPref('cal_last_class') ? $ilUser->getPref('cal_last_class') : 'ilcalendarmonthgui';
510  $this->forwardToClass($history);
511  }
forwardToClass($a_class)
forward to class
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:

◆ prepareOutput()

ilCalendarPresentationGUI::prepareOutput ( )
protected

get tabs

public

Definition at line 578 of file class.ilCalendarPresentationGUI.php.

References $_GET, $ctrl, $DIC, $header, $help, $lng, $rbacsystem, $tabs, $tabs_gui, $tpl, ilCalendarSettings\_getInstance(), ilObjUser\_lookupFullname(), ilAdvancedSelectionListGUI\DOWN_ARROW_DARK, ilUtil\getImagePath(), getRepositoryMode(), ilCalendarCategory\TYPE_BOOK, ilCalendarCategory\TYPE_CH, ilCalendarCategory\TYPE_GLOBAL, ilCalendarCategory\TYPE_OBJ, and ilCalendarCategory\TYPE_USR.

Referenced by executeCommand().

579  {
580  global $DIC;
581 
582  $tpl = $DIC["tpl"];
583  //$tpl->setHeaderActionMenu(null);
584 
586  $ilHelp = $this->help;
587 
588  $ilHelp->setScreenIdComponent("cal");
589 
590  if ($this->getRepositoryMode()) {
591  $this->tabs_gui->clearTargets();
592  $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getParentReturn($this));
593  } else {
594  $this->tabs_gui->addTab(
595  'cal_agenda',
596  $this->lng->txt("cal_agenda"),
597  $this->ctrl->getLinkTarget($this, '')
598  );
599  //$this->tabs_gui->addTarget('cal_upcoming_events_header',$this->ctrl->getLinkTargetByClass('ilCalendarInboxGUI',''));
600 
601  if (
602  $rbacsystem->checkAccess('add_consultation_hours', ilCalendarSettings::_getInstance()->getCalendarSettingsId()) and
603  ilCalendarSettings::_getInstance()->areConsultationHoursEnabled()
604  ) {
605  $this->tabs_gui->addTarget('app_consultation_hours', $this->ctrl->getLinkTargetByClass('ilConsultationHoursGUI', ''));
606  }
607  $this->tabs_gui->addTarget('cal_manage', $this->ctrl->getLinkTargetByClass('ilCalendarCategoryGUI', 'manage'));
608  $this->tabs_gui->addTarget('settings', $this->ctrl->getLinkTargetByClass('ilCalendarUserSettingsGUI', ''));
609  }
610 
611  // if we are in single calendar view
612  if ($this->category_id > 0) {
613  global $DIC;
614 
616  $lng = $this->lng;
617  $ctrl = $this->ctrl;
618  $tpl = $DIC["tpl"];
619 
620  $category = new ilCalendarCategory($this->category_id);
621 
622  // Set header
623  $header = "";
624  switch ($category->getType()) {
626  $header = $this->lng->txt('cal_type_personal') . ": " . $category->getTitle();
627  break;
628 
630  $header = $this->lng->txt('cal_type_system') . ": " . $category->getTitle();
631  break;
632 
634  $header = $this->lng->txt('cal_type_' . $category->getObjType()) . ": " . $category->getTitle();
635  break;
636 
638  $header = str_replace("%1", ilObjUser::_lookupFullname($category->getObjId()), $lng->txt("cal_consultation_hours_for_user"));
639  break;
640 
642  $header = $category->getTitle();
643  break;
644  }
645  $tpl->setTitleIcon(ilUtil::getImagePath("icon_cal.svg"));
646  $tpl->setTitle($header);
647 
648  $this->action_menu = new ilAdvancedSelectionListGUI();
649  $this->action_menu->setAsynch(false);
650  $this->action_menu->setAsynchUrl('');
651  $this->action_menu->setListTitle($lng->txt('actions'));
652  $this->action_menu->setId('act_cal');
653  $this->action_menu->setSelectionHeaderClass('small');
654  $this->action_menu->setItemLinkClass('xsmall');
655  $this->action_menu->setLinksMode('il_ContainerItemCommand2');
656  $this->action_menu->setHeaderIcon(ilAdvancedSelectionListGUI::DOWN_ARROW_DARK);
657  $this->action_menu->setUseImages(false);
658 
659  // iCal-Url
660  $ctrl->setParameterByClass("ilcalendarsubscriptiongui", "category_id", $this->category_id);
661  $this->action_menu->addItem($lng->txt("cal_ical_url"), "", $ctrl->getLinkTargetByClass("ilcalendarsubscriptiongui", ""));
662 
663  // delete action
664  if ($this->actions->checkDeleteCal($this->category_id)) {
665  $ctrl->setParameterByClass("ilcalendarcategorygui", "category_id", $this->category_id);
666  $ctrl->setParameterByClass("ilcalendarcategorygui", "backv", "1");
667  $this->action_menu->addItem($lng->txt("cal_delete_cal"), "", $ctrl->getLinkTargetByClass("ilcalendarcategorygui", "confirmDelete"));
668  $ctrl->clearParameterByClass('ilcalendarcategorygui', 'backv');
669  }
670 
671  $tpl->setHeaderActionMenu($this->action_menu->getHTML());
672 
673 
674  $tabs->clearTargets();
675  $ctrl->setParameterByClass("ilcalendarcategorygui", "category_id", "");
676  $ctrl->setParameterByClass("ilcalendarpresentationgui", "category_id", "");
677 
678  if ($this->ref_id > 0) {
679  $tabs->setBackTarget($lng->txt("back"), $ctrl->getLinkTargetByClass("ilcalendarpresentationgui", ""));
680  } else {
681  $tabs->setBackTarget($lng->txt("back"), $ctrl->getLinkTargetByClass("ilcalendarcategorygui", "manage"));
682  }
683  $ctrl->setParameterByClass("ilcalendarcategorygui", "category_id", $_GET["category_id"]);
684  $ctrl->setParameterByClass("ilcalendarpresentationgui", "category_id", $_GET["category_id"]);
685 
686  // agenda
687  $tabs->addTab("cal_agenda", $lng->txt("cal_agenda"), $ctrl->getLinkTargetByClass("ilcalendarpresentationgui", ""));
688 
689  // share
690  if ($this->actions->checkShareCal($this->category_id)) {
691  $tabs->addTab("share", $lng->txt("cal_share"), $ctrl->getLinkTargetByClass("ilcalendarcategorygui", "shareSearch"));
692  }
693 
694  // edit settings
695  if ($this->actions->checkSettingsCal($this->category_id)) {
696  $tabs->addTab("edit", $lng->txt("settings"), $ctrl->getLinkTargetByClass("ilcalendarcategorygui", "edit"));
697  }
698  $tabs->activateTab("cal_agenda");
699  }
700  }
static _getInstance()
get singleton instance
global $DIC
Definition: saml.php:7
$_GET["client_id"]
static _lookupFullname($a_user_id)
Lookup Full Name.
Stores calendar categories.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
if(!empty($this->data['faventry'])) $tabs
Definition: disco.tpl.php:124
User interface class for advanced drop-down selection lists.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readLastClass()

ilCalendarPresentationGUI::readLastClass ( )

Read last class from history.

Returns

Definition at line 421 of file class.ilCalendarPresentationGUI.php.

References $ilUser, and $user.

Referenced by executeCommand(), and getNextClass().

422  {
424 
425  return $ilUser->getPref('cal_last_class') ? $ilUser->getPref('cal_last_class') : 'ilcalendarinboxgui';
426  }
$ilUser
Definition: imgupload.php:18
+ Here is the caller graph for this function:

◆ setCmdClass()

ilCalendarPresentationGUI::setCmdClass (   $a_class)

Definition at line 428 of file class.ilCalendarPresentationGUI.php.

Referenced by executeCommand(), and forwardToClass().

429  {
430  // If cmd class == 'ilcalendarpresentationgui' the cmd class is set to the the new forwarded class
431  // otherwise e.g ilcalendarmonthgui tries to forward (back) to ilcalendargui.
432 
433  if ($this->ctrl->getCmdClass() == strtolower(get_class($this))) {
434  $this->ctrl->setCmdClass(strtolower($a_class));
435  }
436  return true;
437  }
+ Here is the caller graph for this function:

◆ show()

ilCalendarPresentationGUI::show ( )

Show.

public

Parameters

Definition at line 567 of file class.ilCalendarPresentationGUI.php.

References ilUtil\getStyleSheetLocation().

568  {
569  $this->tpl->addCss(ilUtil::getStyleSheetLocation('filesystem', 'delos.css', 'Services/Calendar'));
570  }
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
+ Here is the call graph for this function:

◆ showSideBlocks()

ilCalendarPresentationGUI::showSideBlocks ( )
protected

show side blocks

protected

Parameters

Definition at line 520 of file class.ilCalendarPresentationGUI.php.

References $ctrl, $ilCtrl, $ilUser, $seed, $tpl, $user, and getRepositoryMode().

Referenced by executeCommand().

521  {
524 
525  $tpl = new ilTemplate('tpl.cal_side_block.html', true, true, 'Services/Calendar');
526 
527  /*include_once('./Services/Calendar/classes/class.ilMiniCalendarGUI.php');
528  $mini = new ilMiniCalendarGUI($this->seed, $this);
529  $tpl->setVariable('MINICAL',$mini->getHTML());*/
530 
531  /*
532  include_once("./Services/Calendar/classes/class.ilCalendarSelectionBlockGUI.php");
533  $block_gui = new ilCalendarSelectionBlockGUI($this->seed);
534  $html = $ilCtrl->getHTML($block_gui);
535  return $html;*/
536 
537  if ($this->getRepositoryMode()) {
538  include_once("./Services/Calendar/classes/class.ilCalendarBlockGUI.php");
539  $side_cal = new ilCalendarBlockGUI();
540  } else {
541  include_once("./Services/Calendar/classes/class.ilPDCalendarBlockGUI.php");
542  $side_cal = new ilPDCalendarBlockGUI();
543  }
544  $side_cal->setAvailableDetailLevels(2, 2);
545  $side_cal->setParentGUI("ilCalendarPresentationGUI");
546  $side_cal->setForceMonthView(true);
547  $side_cal->setRepositoryMode($this->getRepositoryMode());
548  $tpl->setVariable('MINICAL', $ilCtrl->getHTML($side_cal));
549 
550  if ($this->category_id == 0) {
551  include_once('./Services/Calendar/classes/class.ilCalendarCategoryGUI.php');
552  $cat = new ilCalendarCategoryGUI($ilUser->getId(), $this->seed, $this->ref_id);
553  $tpl->setVariable('CATEGORIES', $ilCtrl->getHTML($cat));
554  }
555 
556  $this->tpl->setRightContent($tpl->get());
557  }
global $ilCtrl
Definition: ilias.php:18
Calendar blocks, displayed on personal desktop.
special template class to simplify handling of ITX/PEAR
$ilUser
Definition: imgupload.php:18
Calendar blocks, displayed in different contexts, e.g.
Administration, Side-Block presentation of calendar categories.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showToolbarAndSidebar()

ilCalendarPresentationGUI::showToolbarAndSidebar ( )

Definition at line 754 of file class.ilCalendarPresentationGUI.php.

Referenced by executeCommand().

755  {
756  #21783
757  if ($this->ctrl->getCmdClass() == "ilcalendarappointmentgui" || $this->ctrl->getCmdClass() == 'ilconsultationhoursgui') {
758  return false;
759  }
760  return true;
761  }
+ Here is the caller graph for this function:

◆ showViewSelection()

ilCalendarPresentationGUI::showViewSelection (   $a_active = "cal_list")

Show view selection.

Parameters
string$a_active

Definition at line 351 of file class.ilCalendarPresentationGUI.php.

References $ctrl, $lng, $toolbar, $ui, array, and IL_CAL_DATE.

Referenced by executeCommand().

352  {
353  $ui = $this->ui;
354  $ctrl = $this->ctrl;
355  $lng = $this->lng;
357 
358  $f = $ui->factory();
359 
360  $actions = array(
361  $lng->txt("app_day") => $ctrl->getLinkTargetByClass('ilCalendarDayGUI', ''),
362  $lng->txt("app_week") => $ctrl->getLinkTargetByClass('ilCalendarWeekGUI', ''),
363  $lng->txt("app_month") => $ctrl->getLinkTargetByClass('ilCalendarMonthGUI', ''),
364  $lng->txt("cal_list") => $ctrl->getLinkTargetByClass('ilCalendarInboxGUI', '')
365  );
366 
367  $aria_label = $lng->txt("cal_change_calendar_view");
368  $view_control = $f->viewControl()->mode($actions, $aria_label)->withActive($lng->txt($a_active));
369 
370  $toolbar->addComponent($view_control);
371 
372  $ctrl->setParameterByClass("ilcalendarappointmentgui", "seed", $this->seed->get(IL_CAL_DATE, ''));
373  $ctrl->setParameterByClass("ilcalendarappointmentgui", "app_id", "");
374  $ctrl->setParameterByClass("ilcalendarappointmentgui", "dt", "");
375 
376  $extra_button_added = false;
377  // add appointment
378  if ($this->category_id == 0 || $this->actions->checkAddEvent($this->category_id)) {
379  $toolbar->addSeparator();
380  $extra_button_added = true;
381  $add_button = $f->button()->standard(
382  $lng->txt("cal_add_appointment"),
383  $ctrl->getLinkTargetByClass("ilcalendarappointmentgui", "add")
384  );
385  $toolbar->addComponent($add_button);
386  }
387 
388  // import appointments
389  if ($this->category_id > 0 && $this->actions->checkAddEvent($this->category_id)) {
390  if (!$extra_button_added) {
391  $toolbar->addSeparator();
392  }
393  $add_button = $f->button()->standard(
394  $lng->txt("cal_import_appointments"),
395  $ctrl->getLinkTargetByClass("ilcalendarcategorygui", "importAppointments")
396  );
397  $toolbar->addComponent($add_button);
398  }
399  }
Create styles array
The data for the language used.
const IL_CAL_DATE
+ Here is the caller graph for this function:

◆ synchroniseExternalCalendars()

ilCalendarPresentationGUI::synchroniseExternalCalendars ( )
protected

Sync external calendars.

Definition at line 718 of file class.ilCalendarPresentationGUI.php.

References $ilUser, $info, $user, ilDateTime\_before(), ilCalendarCategories\_getInstance(), ilCalendarSettings\_getInstance(), IL_CAL_HOUR, IL_CAL_UNIX, ilCalendarRemoteReader\setUser(), and time.

Referenced by executeCommand().

719  {
721 
722  if (!ilCalendarSettings::_getInstance()->isWebCalSyncEnabled()) {
723  return false;
724  }
725  // @todo make this thread safe
726 
727  $limit = new ilDateTime(time(), IL_CAL_UNIX);
728  $limit->increment(IL_CAL_HOUR, -1 * ilCalendarSettings::_getInstance()->getWebCalSyncHours());
729 
731  foreach ($cats->getCategoriesInfo() as $cat_id => $info) {
732  if ($info['remote']) {
733  // Check for execution
734  $category = new ilCalendarCategory($cat_id);
735 
736  if (ilDateTime::_before($category->getRemoteSyncLastExecution(), $limit)) {
737  // update in any case to avoid multiple updates of invalid calendar sources.
738  $category->setRemoteSyncLastExecution(new ilDateTime(time(), IL_CAL_UNIX));
739  $category->update();
740 
741  include_once './Services/Calendar/classes/class.ilCalendarRemoteReader.php';
742  $remote = new ilCalendarRemoteReader($category->getRemoteUrl());
743  $remote->setUser($category->getRemoteUser());
744  $remote->setPass($category->getRemotePass());
745  $remote->read();
746  $remote->import($category);
747  break;
748  }
749  }
750  }
751  }
static _getInstance()
get singleton instance
const IL_CAL_HOUR
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.
Stores calendar categories.
Reader for remote ical calendars.
const IL_CAL_UNIX
Date and time handling
$ilUser
Definition: imgupload.php:18
static _getInstance($a_usr_id=0)
get singleton instance
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
$info
Definition: index.php:5
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilCalendarPresentationGUI::$ctrl
protected

◆ $help

ilCalendarPresentationGUI::$help
protected

Definition at line 49 of file class.ilCalendarPresentationGUI.php.

Referenced by prepareOutput().

◆ $lng

ilCalendarPresentationGUI::$lng
protected

Definition at line 29 of file class.ilCalendarPresentationGUI.php.

Referenced by prepareOutput(), and showViewSelection().

◆ $rbacsystem

ilCalendarPresentationGUI::$rbacsystem
protected

Definition at line 54 of file class.ilCalendarPresentationGUI.php.

Referenced by prepareOutput().

◆ $repository_mode

ilCalendarPresentationGUI::$repository_mode = false
protected

Definition at line 66 of file class.ilCalendarPresentationGUI.php.

Referenced by getRepositoryMode().

◆ $seed

ilCalendarPresentationGUI::$seed
protected

Definition at line 71 of file class.ilCalendarPresentationGUI.php.

Referenced by executeCommand(), and showSideBlocks().

◆ $tabs_gui

ilCalendarPresentationGUI::$tabs_gui
protected

Definition at line 39 of file class.ilCalendarPresentationGUI.php.

Referenced by prepareOutput().

◆ $toolbar

ilCalendarPresentationGUI::$toolbar
protected

Definition at line 64 of file class.ilCalendarPresentationGUI.php.

Referenced by showViewSelection().

◆ $tpl

ilCalendarPresentationGUI::$tpl
protected

Definition at line 34 of file class.ilCalendarPresentationGUI.php.

Referenced by prepareOutput(), and showSideBlocks().

◆ $ui

ilCalendarPresentationGUI::$ui
protected

Definition at line 59 of file class.ilCalendarPresentationGUI.php.

Referenced by showViewSelection().

◆ $user

ilCalendarPresentationGUI::$user
protected

The documentation for this class was generated from the following file: