ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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->setSuffix($this->lng->txt("book_bookings_per_user"));
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 {
427 $ilUser = $this->user;
428
430 $pool = $this->object;
431
432 if (!$this->ctrl->getNextClass() && in_array($this->ctrl->getCmd(), array("create", "save"))) {
433 return;
434 }
435
436 if ($this->checkPermissionBool('read')) {
437 if ($ilUser->getId() !== ANONYMOUS_USER_ID) {
438 if ($pool->getScheduleType() === ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES) {
439 $this->tabs_gui->addTab(
440 "preferences",
441 $this->lng->txt("book_pref_overview"),
442 $this->ctrl->getLinkTargetByClass("ilbookingpreferencesgui", "")
443 );
444 }
445
446 if ($pool->getScheduleType() !== ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES ||
447 $this->checkPermissionBool('write')) {
448 $this->tabs_gui->addTab(
449 "render",
450 $this->lng->txt("book_booking_objects"),
451 $this->ctrl->getLinkTarget($this, "render")
452 );
453 }
454 }
455
456 if ($ilUser->getId() !== ANONYMOUS_USER_ID || $this->object->hasPublicLog()) {
457 $this->tabs_gui->addTab(
458 "log",
459 $this->lng->txt("book_log"),
460 $this->ctrl->getLinkTargetByClass("ilbookingreservationsgui", "")
461 );
462 }
463
464 $this->tabs_gui->addTab(
465 "info",
466 $this->lng->txt("info_short"),
467 $this->ctrl->getLinkTarget($this, "infoscreen")
468 );
469 }
470
471 if ($this->checkPermissionBool('write')) {
472 /*
473 $this->tabs_gui->addTab(
474 "settings",
475 $this->lng->txt("settings"),
476 $this->ctrl->getLinkTarget($this, "edit")
477 );*/
478
479 $this->tabs_gui->addTab(
480 "settings",
481 $this->lng->txt("settings"),
482 $this->ctrl->getLinkTargetByClass(SettingsGUI::class, "")
483 );
484
485 if ($this->object->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE) {
486 $this->tabs_gui->addTab(
487 "schedules",
488 $this->lng->txt("book_schedules"),
489 $this->ctrl->getLinkTargetByClass("ilbookingschedulegui", "render")
490 );
491 }
492
493 $this->tabs_gui->addTab(
494 "participants",
495 $this->lng->txt("participants"),
496 $this->ctrl->getLinkTargetByClass("ilbookingparticipantgui", "render")
497 );
498
499 // meta data
500 $mdgui = new ilObjectMetaDataGUI($this->object, "bobj");
501 $mdtab = $mdgui->getTab();
502 if ($mdtab) {
503 $this->tabs_gui->addTarget(
504 "meta_data",
505 $mdtab,
506 "",
507 "ilobjectmetadatagui"
508 );
509 }
510 }
511
512
513 if ($this->checkPermissionBool('edit_permission')) {
514 $this->tabs_gui->addTab(
515 "perm_settings",
516 $this->lng->txt("perm_settings"),
517 $this->ctrl->getLinkTargetByClass("ilpermissiongui", "perm")
518 );
519 }
520 }
521
522 public static function _goto(string $a_target): void
523 {
524 global $DIC;
525 $main_tpl = $DIC->ui()->mainTemplate();
526
527 $ilAccess = $DIC->access();
528 $lng = $DIC->language();
529
530 if ($ilAccess->checkAccess("read", "", $a_target)) {
531 ilObjectGUI::_gotoRepositoryNode($a_target, "render");
532 } elseif ($ilAccess->checkAccess("visible", "", $a_target)) {
533 ilObjectGUI::_gotoRepositoryNode($a_target, "infoScreen");
534 } elseif ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
535 $main_tpl->setOnScreenMessage('failure', sprintf(
536 $lng->txt("msg_no_perm_read_item"),
538 ), true);
540 }
541 }
542
546 public function infoScreenObject(): void
547 {
548 $this->ctrl->redirectByClass(ilInfoScreenGUI::class, "showSummary");
549 }
550
551 public function infoScreen(): string
552 {
553 $ilCtrl = $this->ctrl;
554
555 $this->tabs_gui->setTabActive('info');
556
557 $this->checkPermission("visible");
558
559 $info = new ilInfoScreenGUI($this);
560
561 $info->enablePrivateNotes();
562
563 if ($this->checkPermissionBool("read")) {
564 $info->enableNews();
565 }
566
567 // no news editing for files, just notifications
568 $info->enableNewsEditing(false);
569 if ($this->checkPermissionBool("write")) {
570 $news_set = new ilSetting("news");
571 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
572
573 if ($enable_internal_rss) {
574 $info->setBlockProperty("news", "settings", true);
575 $info->setBlockProperty("news", "public_notifications_option", true);
576 }
577 }
578
579 // forward the command
580 if ($ilCtrl->getNextClass() === "ilinfoscreengui") {
581 $ilCtrl->forwardCommand($info);
582 } else {
583 return $ilCtrl->getHTML($info);
584 }
585 return "";
586 }
587
588
589 public function showProfileObject(): void
590 {
592 $ilCtrl = $this->ctrl;
593
594 $this->tabs_gui->clearTargets();
595
597
598 $profile = new PublicProfileGUI($user_id);
599 $profile->setBackUrl($this->ctrl->getLinkTarget($this, 'log'));
600 $tpl->setContent($ilCtrl->getHTML($profile));
601 }
602
603 protected function addLocatorItems(): void
604 {
605 $ilLocator = $this->locator;
606
607 if (is_object($this->object)) {
608 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "render"), "", $this->object->getRefId());
609 }
610 }
611
612 protected function initHeaderAction(?string $sub_type = null, ?int $sub_id = null): ?ilObjectListGUI
613 {
618
619 $lng->loadLanguageModule("noti");
620
621 $lg = parent::initHeaderAction($sub_type, $sub_id);
622
623 if ($lg && $access->checkAccess("read", "", $this->ref_id)) {
624 if ($this->object->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE &&
625 $this->object->getReminderStatus()) {
626 // notification
629 $user->getId(),
630 $this->object->getId()
631 )) {
632 $lg->addHeaderIcon(
633 "not_icon",
634 ilUtil::getImagePath("object/notification_off.svg"),
635 $lng->txt("noti_notification_deactivated")
636 );
637
638 $ctrl->setParameter($this, "ntf", 1);
639 $caption = "noti_activate_notification";
640 } else {
641 $lg->addHeaderIcon(
642 "not_icon",
643 ilUtil::getImagePath("object/notification_on.svg"),
644 $lng->txt("noti_notification_activated")
645 );
646
647 $ctrl->setParameter($this, "ntf", 0);
648 $caption = "noti_deactivate_notification";
649 }
650
651 $lg->addCustomCommand(
652 $ctrl->getLinkTarget($this, "saveNotification"),
653 $caption
654 );
655
656 $ctrl->setParameter($this, "ntf", "");
657 }
658 }
659
660 return $lg;
661 }
662
663 public function saveNotificationObject(): void
664 {
667
668
669 switch ($this->book_request->getNotification()) {
670 case 0:
671 ilNotification::setNotification(ilNotification::TYPE_BOOK, $user->getId(), $this->object->getId(), false);
672 break;
673
674 case 1:
675 ilNotification::setNotification(ilNotification::TYPE_BOOK, $user->getId(), $this->object->getId(), true);
676 break;
677 }
678 $ctrl->redirect($this, "render");
679 }
680}
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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getList(int $a_pool_id, ?string $a_title=null)
Get list of booking objects.
static lookupPoolId(int $object_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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 $a_topic, string $a_default_lang_fallback_mod="")
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