ILIAS  trunk Revision v13.0_alpha-52-g21c366bbdd4
class.ilObjBookingPoolGUI.php
Go to the documentation of this file.
1<?php
2
25
35{
38 protected \ILIAS\Cron\Job\JobManager $cron_manager;
41 protected ilTabsGUI $tabs;
44 protected int $user_id_to_book; // user who is getting the reservation
45 protected int $user_id_assigner; // user who performs the reservation.(self/another)
46 protected string $seed;
47 protected string $sseed;
48 protected int $profile_user_id;
49 protected int $book_obj_id;
50 protected string $reservation_id;
51
52 public function __construct(
53 $a_data,
54 int $a_id,
55 bool $a_call_by_reference,
56 bool $a_prepare_output = true
57 ) {
58 global $DIC;
59 $this->service = $DIC->bookingManager()->internal();
60
61 $this->domain = $domain = $this->service->domain();
62 $this->gui = $gui = $this->service->gui();
63
64 $this->tpl = $gui->mainTemplate();
65 $this->tabs = $gui->tabs();
66 $this->nav_history = $gui->navigationHistory();
67 $this->ctrl = $gui->ctrl();
68 $this->lng = $domain->lng();
69 $this->type = "book";
70
71 $this->book_request = $gui->standardRequest();
72
73 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
74 $this->lng->loadLanguageModule("book");
75
76 // not on creation
77 if (is_object($this->object)) {
79 $pool = $this->object;
80 $this->help = new ilBookingHelpAdapter($pool, $DIC["ilHelp"]);
81 $DIC["ilHelp"]->setScreenIdComponent("book");
82 }
83
84 $this->book_obj_id = $this->book_request->getObjectId();
85 $this->seed = $this->book_request->getSeed();
86 $this->sseed = $this->book_request->getSSeed();
87 $this->reservation_id = $this->book_request->getReservationId();
88 $this->profile_user_id = $this->book_request->getUserId();
89
90 $this->user_id_assigner = $this->user->getId();
91 if ($this->book_request->getBookedUser() > 0) {
92 $this->user_id_to_book = $this->book_request->getBookedUser();
93 } else {
94 $this->user_id_to_book = $this->user_id_assigner; // by default user books his own booking objects.
95 }
96
97 if ($this->book_request->getObjectId() > 0 &&
98 ilBookingObject::lookupPoolId($this->book_request->getObjectId()) !== $this->object->getId()) {
99 throw new ilException("Booking Object ID does not match Booking Pool.");
100 }
101 $this->cron_manager = $DIC->cron()->manager();
102 }
103
109 public function executeCommand(): void
110 {
112 $ilTabs = $this->tabs;
113 $ilNavigationHistory = $this->nav_history;
114 $ilUser = $this->user;
115
116 $next_class = $this->ctrl->getNextClass($this);
117 $cmd = $this->ctrl->getCmd();
118
119 if (!$next_class && $cmd === 'render') {
120 if ($ilUser->getId() !== ANONYMOUS_USER_ID) {
121 if ($this->object->getScheduleType() === ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES &&
122 !$this->checkPermissionBool('write')) {
123 $this->ctrl->redirectByClass(ilBookingPreferencesGUI::class);
124 } else {
125 $this->ctrl->redirectByClass(ilBookingObjectGUI::class);
126 }
127 $next_class = $this->ctrl->getNextClass($this);
128 } else {
129 $this->ctrl->redirect($this, "infoscreen");
130 }
131 }
132
133 $ilNavigationHistory->addItem(
134 $this->ref_id,
135 "./goto.php?target=book_" . $this->ref_id,
136 "book"
137 );
138
139 $this->prepareOutput();
140
141 switch ($next_class) {
142 case 'ilpermissiongui':
143 $this->checkPermission('edit_permission');
144 $this->tabs_gui->setTabActive('perm_settings');
145 $perm_gui = new ilPermissionGUI($this);
146 $this->ctrl->forwardCommand($perm_gui);
147 break;
148
149 case 'ilbookingobjectgui':
150 if (!$this->checkPermissionBool('read') && $this->checkPermissionBool('visible')) {
151 $this->ctrl->redirect($this, "infoScreen");
152 }
153 $this->checkPermission('read');
154 $this->tabs_gui->setTabActive('render');
155 $object_gui = new ilBookingObjectGUI(
156 $this,
157 $this->seed,
158 $this->sseed,
159 $this->help
160 );
161 $this->ctrl->forwardCommand($object_gui);
162 break;
163
164 case 'ilbookingschedulegui':
165 $this->checkPermission('write');
166 $this->tabs_gui->setTabActive('schedules');
167 $schedule_gui = new ilBookingScheduleGUI($this);
168 $this->ctrl->forwardCommand($schedule_gui);
169 break;
170
171 case strtolower(PublicProfileGUI::class):
172 $this->checkPermission('read');
173 $ilTabs->clearTargets();
174 $profile = new PublicProfileGUI($this->profile_user_id);
175 $profile->setBackUrl($this->ctrl->getLinkTargetByClass("ilbookingreservationsgui", ''));
176 $ret = $this->ctrl->forwardCommand($profile);
177 $tpl->setContent($ret);
178 break;
179
180 case 'ilinfoscreengui':
181 $this->checkPermission('visible');
182 $this->infoScreen();
183 break;
184
185 case "ilcommonactiondispatchergui":
186 $this->checkPermission('read');
188 if ($gui !== null) {
189 $this->ctrl->forwardCommand($gui);
190 }
191 break;
192
193 case "ilobjectcopygui":
194 $this->checkPermission('copy');
195 $cp = new ilObjectCopyGUI($this);
196 $cp->setType("book");
197 $this->ctrl->forwardCommand($cp);
198 break;
199
200 case 'ilobjectmetadatagui':
201 $this->checkPermission('write');
202 $this->tabs_gui->setTabActive('meta_data');
203 $md_gui = new ilObjectMetaDataGUI($this->object, 'bobj');
204 $this->ctrl->forwardCommand($md_gui);
205 break;
206
207 case 'ilbookingparticipantgui':
208 $this->checkPermission('write');
209 $this->tabs_gui->setTabActive('participants');
210 $object_gui = new ilBookingParticipantGUI($this);
211 $this->ctrl->forwardCommand($object_gui);
212 break;
213
214
215 case "ilbookingreservationsgui":
216 $this->tabs_gui->setTabActive('log');
218 $pool = $this->object;
219 $res_gui = new ilBookingReservationsGUI($pool, $this->help);
220 $this->ctrl->forwardCommand($res_gui);
221 break;
222
223 case 'ilbookingpreferencesgui':
224 $this->tabs_gui->setTabActive('preferences');
226 $pool = $this->object;
227 $gui = $this->service->gui()->preferences()->BookingPreferencesGUI($pool);
228 $this->ctrl->forwardCommand($gui);
229 break;
230
231 case strtolower(SettingsGUI::class):
232 $this->checkPermission("write");
233 $this->showNoScheduleMessage();
234 $ilTabs->activateTab("settings");
235 $gui = $this->gui->settings()->settingsGUI(
236 $this->object->getId(),
237 $this->requested_ref_id,
238 $this->getCreationMode(),
239 $this
240 );
241 $this->ctrl->forwardCommand($gui);
242 break;
243
244 default:
245 if (!in_array($cmd, ["create", "save", "infoScreen"])) {
246 $this->checkPermission('read');
247 }
248 $cmd = $this->ctrl->getCmd();
249 $cmd .= 'Object';
250 $this->$cmd();
251 break;
252 }
253
254 $this->addHeaderAction();
255 }
256
257 protected function afterSave(ilObject $new_object): void
258 {
259 $new_object->update();
260
261 // always send a message
262 $this->tpl->setOnScreenMessage('success', $this->lng->txt("book_pool_added"), true);
263 $this->ctrl->setParameter($this, "ref_id", $new_object->getRefId());
264 $this->ctrl->redirect($this, "edit");
265 }
266
267 protected function afterUpdate(): void
268 {
269 // check if template is changed
271 $this->object->getRefId()
272 );
273 $new_tpl_id = $this->getDidacticTemplateVar('dtpl');
274
275 if ($new_tpl_id !== $current_tpl_id) {
276 // redirect to didactic template confirmation
277 $this->ctrl->redirect(ilDidacticTemplateGUI::class, "confirmTemplateSwitch");
278 return;
279 }
280 parent::afterUpdate();
281 }
282
283 public function editObject(): void
284 {
285 $this->ctrl->redirectByClass(SettingsGUI::class, "");
286 }
287
288 public function showNoScheduleMessage(): void
289 {
290 $schedule_manager = $this->domain->schedules($this->object->getId());
291
292 // if we have no schedules yet - show info
293 if ($this->object->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE &&
294 !$schedule_manager->hasSchedules()) {
295 $this->tpl->setOnScreenMessage('info', $this->lng->txt("book_schedule_warning_edit"));
296 }
297 }
298
299
300 protected function initEditCustomForm(ilPropertyFormGUI $form): void
301 {
302 $obj_service = $this->getObjectService();
303
304 // Show didactic template type
305 $this->initDidacticTemplate($form);
306
307 $type = new ilRadioGroupInputGUI($this->lng->txt("book_schedule_type"), "stype");
308 $type->setRequired(true);
309 $form->addItem($type);
310
311 // #14478
312 if (count(ilBookingObject::getList($this->object->getId()))) {
313 $type->setDisabled(true);
314 }
315
316 $fixed = new ilRadioOption($this->lng->txt("book_schedule_type_fixed"), ilObjBookingPool::TYPE_FIX_SCHEDULE);
317 $fixed->setInfo($this->lng->txt("book_schedule_type_fixed_info"));
318 $type->addOption($fixed);
319
320 #23637
321 //period
322 $period = new ilNumberInputGUI($this->lng->txt("book_reservation_filter_period"), "period");
323 $period->setInfo($this->lng->txt("book_reservation_filter_period_info"));
324 $period->setSuffix($this->lng->txt("days"));
325 $period->setSize(3);
326 $period->setMinValue(0);
327 $fixed->addSubItem($period);
328
329 // reminder
330 $rmd = new ilCheckboxInputGUI($this->lng->txt("book_reminder_setting"), "rmd");
331 $rmd->setChecked((bool) $this->object->getReminderStatus());
332 $info = $this->lng->txt("book_reminder_day_info");
333 if (!$this->cron_manager->isJobActive('book_notification')) {
334 $info .= " " . $this->lng->txt("book_notification_cron_not_active");
335 }
336 $rmd->setInfo($info);
337 $fixed->addSubItem($rmd);
338
339 $rmd_day = new ilNumberInputGUI($this->lng->txt("book_reminder_day"), "rmd_day");
340 $rmd_day->setRequired(true);
341 $rmd_day->setSize(3);
342 $rmd_day->setSuffix($this->lng->txt("book_reminder_days"));
343 $rmd_day->setValue(max($this->object->getReminderDay(), 1));
344 $rmd_day->setMinValue(1);
345 $rmd->addSubItem($rmd_day);
346
347 // no schedule, direct booking
348 $none = new ilRadioOption($this->lng->txt("book_schedule_type_none_direct"), ilObjBookingPool::TYPE_NO_SCHEDULE);
349 $none->setInfo($this->lng->txt("book_schedule_type_none_direct_info"));
350 $type->addOption($none);
351
352 $limit = new ilNumberInputGUI($this->lng->txt("book_overall_limit"), "limit");
353 $limit->setSize(4);
354 $limit->setMinValue(1);
355 $limit->setInfo($this->lng->txt("book_total_individual_bookings_limit"));
356 $none->addSubItem($limit);
357
358 // no schedule, using preferences
359 $pref = new ilRadioOption($this->lng->txt("book_schedule_type_none_preference"), ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES);
360 $pref->setInfo($this->lng->txt("book_schedule_type_none_preference_info"));
361 $type->addOption($pref);
362
363 // number of preferences
364 $pref_nr = new ilNumberInputGUI($this->lng->txt("book_nr_of_preferences"), "preference_nr");
365 $pref_nr->setSize(4);
366 $pref_nr->setMinValue(1);
367 $pref_nr->setInfo($this->lng->txt("book_nr_of_preferences_info"));
368 $pref_nr->setSuffix($this->lng->txt("book_nr_preferences"));
369 $pref_nr->setRequired(true);
370 $pref->addSubItem($pref_nr);
371
372 // preference deadline
373 $pref_deadline = new ilDateTimeInputGUI($this->lng->txt("book_pref_deadline"), "pref_deadline");
374 $pref_deadline->setInfo($this->lng->txt("book_pref_deadline_info"));
375 $pref_deadline->setShowTime(true);
376 $pref_deadline->setRequired(true);
377 $pref->addSubItem($pref_deadline);
378
379
380 $public = new ilCheckboxInputGUI($this->lng->txt("book_public_log"), "public");
381 $public->setInfo($this->lng->txt("book_public_log_info"));
382 $form->addItem($public);
383
384 // messages
385 $mess = new ilCheckboxInputGUI($this->lng->txt("book_messages"), "messages");
386 $mess->setInfo($this->lng->txt("book_messages_info"));
387 $form->addItem($mess);
388
389 $this->lng->loadLanguageModule("rep");
390 $section = new ilFormSectionHeaderGUI();
391 $section->setTitle($this->lng->txt('rep_activation_availability'));
392 $form->addItem($section);
393
394 $online = new ilCheckboxInputGUI($this->lng->txt("online"), "online");
395 $form->addItem($online);
396
397 // presentation
398 $pres = new ilFormSectionHeaderGUI();
399 $pres->setTitle($this->lng->txt('obj_presentation'));
400 $form->addItem($pres);
401
402 // tile image
403 $obj_service->commonSettings()->legacyForm($form, $this->object)->addTileImage();
404
405 // additional features
406 $feat = new ilFormSectionHeaderGUI();
407 $feat->setTitle($this->lng->txt('obj_features'));
408 $form->addItem($feat);
409 }
410
411 public function addExternalEditFormCustom(ilPropertyFormGUI $form): void
412 {
414 $this->object->getId(),
415 $form,
417 );
418 }
419
425 protected function setTabs(): void
426 {
428 $pool = $this->object;
429
430 if (!$this->ctrl->getNextClass() && in_array($this->ctrl->getCmd(), array("create", "save"))) {
431 return;
432 }
433
434 if ($this->checkPermissionBool('read')) {
435 if (!$this->user->isAnonymous()) {
436 if ($pool->getScheduleType() === ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES) {
437 $this->tabs_gui->addTab(
438 'preferences',
439 $this->lng->txt('book_pref_overview'),
440 $this->ctrl->getLinkTargetByClass(ilBookingPreferencesGUI::class, '')
441 );
442 }
443
444 if ($pool->getScheduleType() !== ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES ||
445 $this->checkPermissionBool('write')) {
446 $this->tabs_gui->addTab(
447 "render",
448 $this->lng->txt('book_booking_objects'),
449 $this->ctrl->getLinkTarget($this, 'render')
450 );
451 }
452 }
453
454 if (
455 ($pool->hasPublicLog() && $this->checkPermissionBool('read'))
456 || $this->checkPermissionBool('manage_own_reservations')
457 || $this->checkPermissionBool('manage_all_reservations')
458 ) {
459 $this->tabs_gui->addTab(
460 'log',
461 $this->lng->txt('book_log'),
462 $this->ctrl->getLinkTargetByClass(ilBookingReservationsGUI::class, '')
463 );
464 }
465
466 $this->tabs_gui->addTab(
467 'info',
468 $this->lng->txt('info_short'),
469 $this->ctrl->getLinkTarget($this, 'infoscreen')
470 );
471 }
472
473 if ($this->checkPermissionBool('write')) {
474 /*
475 $this->tabs_gui->addTab(
476 'settings',
477 $this->lng->txt('settings'),
478 $this->ctrl->getLinkTarget($this, 'edit')
479 );*/
480
481 $this->tabs_gui->addTab(
482 'settings',
483 $this->lng->txt('settings'),
484 $this->ctrl->getLinkTargetByClass(SettingsGUI::class, '')
485 );
486
487 if ($pool->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE) {
488 $this->tabs_gui->addTab(
489 'schedules',
490 $this->lng->txt('book_schedules'),
491 $this->ctrl->getLinkTargetByClass(ilBookingScheduleGUI::class, 'render')
492 );
493 }
494
495 $this->tabs_gui->addTab(
496 'participants',
497 $this->lng->txt('participants'),
498 $this->ctrl->getLinkTargetByClass(ilBookingParticipantGUI::class, 'render')
499 );
500
501 // meta data
502 $mdtab = (new ilObjectMetaDataGUI($pool, 'bobj'))->getTab();
503 if ($mdtab) {
504 $this->tabs_gui->addTarget(
505 'meta_data',
506 $mdtab,
507 '',
508 ilObjectMetaDataGUI::class
509 );
510 }
511 }
512
513
514 if ($this->checkPermissionBool('edit_permission')) {
515 $this->tabs_gui->addTab(
516 'perm_settings',
517 $this->lng->txt('perm_settings'),
518 $this->ctrl->getLinkTargetByClass(ilPermissionGUI::class, 'perm')
519 );
520 }
521 }
522
523 public static function _goto(string $a_target): void
524 {
525 global $DIC;
526 $main_tpl = $DIC->ui()->mainTemplate();
527
528 $ilAccess = $DIC->access();
529 $lng = $DIC->language();
530
531 if ($ilAccess->checkAccess("read", "", $a_target)) {
532 ilObjectGUI::_gotoRepositoryNode($a_target, "render");
533 } elseif ($ilAccess->checkAccess("visible", "", $a_target)) {
534 ilObjectGUI::_gotoRepositoryNode($a_target, "infoScreen");
535 } elseif ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
536 $main_tpl->setOnScreenMessage('failure', sprintf(
537 $lng->txt("msg_no_perm_read_item"),
539 ), true);
541 }
542 }
543
547 public function infoScreenObject(): void
548 {
549 $this->ctrl->redirectByClass(ilInfoScreenGUI::class, "showSummary");
550 }
551
552 public function infoScreen(): string
553 {
554 $ilCtrl = $this->ctrl;
555
556 $this->tabs_gui->setTabActive('info');
557
558 $this->checkPermission("visible");
559
560 $info = new ilInfoScreenGUI($this);
561
562 $info->enablePrivateNotes();
563
564 if ($this->checkPermissionBool("read")) {
565 $info->enableNews();
566 }
567
568 // no news editing for files, just notifications
569 $info->enableNewsEditing(false);
570 if ($this->checkPermissionBool("write")) {
571 $news_set = new ilSetting("news");
572 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
573
574 if ($enable_internal_rss) {
575 $info->setBlockProperty("news", "settings", true);
576 $info->setBlockProperty("news", "public_notifications_option", true);
577 }
578 }
579
580 // forward the command
581 if ($ilCtrl->getNextClass() === "ilinfoscreengui") {
582 $ilCtrl->forwardCommand($info);
583 } else {
584 return $ilCtrl->getHTML($info);
585 }
586 return "";
587 }
588
589
590 public function showProfileObject(): void
591 {
593 $ilCtrl = $this->ctrl;
594
595 $this->tabs_gui->clearTargets();
596
598
599 $profile = new PublicProfileGUI($user_id);
600 $profile->setBackUrl($this->ctrl->getLinkTarget($this, 'log'));
601 $tpl->setContent($ilCtrl->getHTML($profile));
602 }
603
604 protected function addLocatorItems(): void
605 {
606 $ilLocator = $this->locator;
607
608 if (is_object($this->object)) {
609 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "render"), "", $this->object->getRefId());
610 }
611 }
612
613 protected function initHeaderAction(?string $sub_type = null, ?int $sub_id = null): ?ilObjectListGUI
614 {
619
620 $lng->loadLanguageModule("noti");
621
622 $lg = parent::initHeaderAction($sub_type, $sub_id);
623
624 if ($lg && $access->checkAccess("read", "", $this->ref_id)) {
625 if ($this->object->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE &&
626 $this->object->getReminderStatus()) {
627 // notification
630 $user->getId(),
631 $this->object->getId()
632 )) {
633 $lg->addHeaderIcon(
634 "not_icon",
635 ilUtil::getImagePath("object/notification_off.svg"),
636 $lng->txt("noti_notification_deactivated")
637 );
638
639 $ctrl->setParameter($this, "ntf", 1);
640 $caption = "noti_activate_notification";
641 } else {
642 $lg->addHeaderIcon(
643 "not_icon",
644 ilUtil::getImagePath("object/notification_on.svg"),
645 $lng->txt("noti_notification_activated")
646 );
647
648 $ctrl->setParameter($this, "ntf", 0);
649 $caption = "noti_deactivate_notification";
650 }
651
652 $lg->addCustomCommand(
653 $ctrl->getLinkTarget($this, "saveNotification"),
654 $caption
655 );
656
657 $ctrl->setParameter($this, "ntf", "");
658 }
659 }
660
661 return $lg;
662 }
663
664 public function saveNotificationObject(): void
665 {
668
669
670 switch ($this->book_request->getNotification()) {
671 case 0:
672 ilNotification::setNotification(ilNotification::TYPE_BOOK, $user->getId(), $this->object->getId(), false);
673 break;
674
675 case 1:
676 ilNotification::setNotification(ilNotification::TYPE_BOOK, $user->getId(), $this->object->getId(), true);
677 break;
678 }
679 $ctrl->redirect($this, "render");
680 }
681}
Author: Alexander Killing killing@leifos.de
@ilCtrl_Calls ILIAS\BookingManager\Settings\SettingsGUI: ilDidacticTemplateGUI
GUI class for public user profile presentation.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
@ilCtrl_Calls ilBookingObjectGUI: ilPropertyFormGUI, ilBookingProcessWithScheduleGUI,...
static getList(int $a_pool_id, ?string $a_title=null)
Get list of booking objects.
static lookupPoolId(int $object_id)
@ilCtrl_Calls ilBookingParticipantGUI: ilRepositorySearchGUI
@ilCtrl_Calls ilBookingScheduleGUI:
This class represents a checkbox property in a property form.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
getLinkTarget(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
@inheritDoc
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
@inheritDoc
redirect(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
@inheritDoc
This class represents a date/time property in a property form.
Base class for ILIAS Exception handling.
This class represents a section header in a property form.
Class ilInfoScreenGUI.
loadLanguageModule(string $a_module)
Load language module.
txt(string|LanguageIdentifier $a_topic, ?int $n=null)
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
Last visited history for repository items.
static setNotification(int $type, int $user_id, int $id, bool $status=true)
Set notification status for object and user.
static hasNotification(int $type, int $user_id, int $id)
Check notification status for object and user.
This class represents a number property in a property form.
@ilCtrl_Calls ilObjBookingPoolGUI: ilPermissionGUI, ilBookingObjectGUI @ilCtrl_Calls ilObjBookingPool...
afterSave(ilObject $new_object)
Post (successful) object creation hook.
ilNavigationHistory $nav_history
afterUpdate()
Post (successful) object update hook.
ILIAS Cron Job JobManager $cron_manager
static _goto(string $a_target)
infoScreenObject()
this one is called from the info button in the repository
ilBookingHelpAdapter $help
initEditCustomForm(ilPropertyFormGUI $form)
Add custom fields to update form.
StandardGUIRequest $book_request
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
initHeaderAction(?string $sub_type=null, ?int $sub_id=null)
Add header action menu.
InternalDomainService $domain
addExternalEditFormCustom(ilPropertyFormGUI $form)
GUI class for the workflow of copying objects.
Class ilObjectGUI Basic methods of all Output classes.
ilAccessHandler $access
ilGlobalTemplateInterface $tpl
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
initDidacticTemplate(ilPropertyFormGUI $form)
addHeaderAction()
Add header action menu.
setTabs()
set admin tabs
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
ilLocatorGUI $locator
prepareOutput(bool $show_sub_objects=true)
ilLanguage $lng
Class ilObjectMetaDataGUI.
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
Class ilObject Basic functions for all objects.
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
ILIAS Setting Class.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32
$info
Definition: entry_point.php:21
setContent(string $a_html)
Sets content for standard template.
checkAccess(string $a_permission, string $a_cmd, int $a_ref_id, string $a_type="", ?int $a_obj_id=null, ?int $a_tree_id=null)
check access for an object (provide $a_type and $a_obj_id if available for better performance)
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26