ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
class.ilObjContentPageGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
30
47{
49 private readonly \ILIAS\Style\Content\GUIService $content_style_gui;
51 private readonly Container $dic;
52 private bool $infoScreenEnabled = false;
54 private readonly ilHelpGUI $help;
55 private readonly \ILIAS\DI\UIServices $uiServices;
56 private readonly bool $in_page_editor_style_context;
57 private readonly LOMServices $lom_services;
58 private readonly Translations $translation;
59
60 public function __construct(int $a_id = 0, int $a_id_type = self::REPOSITORY_NODE_ID, int $a_parent_node_id = 0)
61 {
62 global $DIC;
63
64 parent::__construct($a_id, $a_id_type, $a_parent_node_id);
65
66 $this->dic = $DIC;
67 $this->settings = $this->dic->settings();
68 $this->navHistory = $this->dic['ilNavigationHistory'];
69 $this->help = $DIC['ilHelp'];
70 $this->uiServices = $DIC->ui();
71 $this->lom_services = $DIC->learningObjectMetadata();
72
73 $this->lng->loadLanguageModule('copa');
74 $this->lng->loadLanguageModule('style');
75 $this->lng->loadLanguageModule('content');
76 $this->lng->loadLanguageModule('rep');
77
78 if ($this->object instanceof ilObjContentPage) {
79 $this->infoScreenEnabled = (bool) ilContainer::_lookupContainerSetting(
80 $this->object->getId(),
82 '1'
83 );
84 }
85
86 $this->pageMetricsService = new PageMetricsService(
87 new PageMetricsRepositoryImp($DIC->database()),
88 $DIC->refinery()
89 );
90 $cs = $DIC->contentStyle();
91 $this->content_style_gui = $cs->gui();
92 if (is_object($this->object)) {
93 $this->content_style_domain = $cs->domain()->styleForRefId($this->object->getRefId());
94 $this->translation = $this->object->getObjectProperties()->getPropertyTranslations();
95 }
96
97 $this->in_page_editor_style_context = $this->http->wrapper()->query()->has(
98 self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT
99 );
100 $this->ctrl->saveParameterByClass(
101 ilObjectContentStyleSettingsGUI::class,
102 self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT
103 );
104 }
105
106 public static function _goto(string $target): void
107 {
108 global $DIC;
109 $main_tpl = $DIC->ui()->mainTemplate();
110
111 $targetAttributes = explode('_', $target);
112 $refId = (int) $targetAttributes[0];
113
114 if ($refId <= 0) {
115 $DIC['ilErr']->raiseError($DIC->language()->txt('msg_no_perm_read'), $DIC['ilErr']->FATAL);
116 }
117
118 if ($DIC->access()->checkAccess('read', '', $refId)) {
119 $DIC->ctrl()->setTargetScript('ilias.php');
120 $DIC->ctrl()->setParameterByClass(self::class, 'ref_id', $refId);
121 $DIC->ctrl()->redirectByClass([
122 ilRepositoryGUI::class,
123 self::class,
124 ], self::UI_CMD_VIEW);
125 } elseif ($DIC->access()->checkAccess('visible', '', $refId)) {
127 } elseif ($DIC->access()->checkAccess('read', '', ROOT_FOLDER_ID)) {
128 $main_tpl->setOnScreenMessage(
129 'info',
130 sprintf(
131 $DIC->language()->txt('msg_no_perm_read_item'),
133 ),
134 true
135 );
136
137 $DIC->ctrl()->setTargetScript('ilias.php');
138 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class, 'ref_id', ROOT_FOLDER_ID);
139 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class);
140 }
141
142 $DIC['ilErr']->raiseError($DIC->language()->txt('msg_no_perm_read'), $DIC['ilErr']->FATAL);
143 }
144
145 public function getType(): string
146 {
147 return self::OBJ_TYPE;
148 }
149
150 protected function setTabs(): void
151 {
152 if ($this->in_page_editor_style_context) {
153 return;
154 }
155
156 $this->help->setScreenIdComponent($this->object->getType());
157
158 if ($this->checkPermissionBool('read')) {
159 $this->tabs_gui->addTab(
160 self::UI_TAB_ID_CONTENT,
161 $this->lng->txt('content'),
162 $this->ctrl->getLinkTarget($this, self::UI_CMD_VIEW)
163 );
164 }
165
166 if ($this->infoScreenEnabled && ($this->checkPermissionBool('visible') || $this->checkPermissionBool('read'))) {
167 $this->tabs_gui->addTab(
168 self::UI_TAB_ID_INFO,
169 $this->lng->txt('info_short'),
170 $this->ctrl->getLinkTargetByClass(ilInfoScreenGUI::class, 'showSummary')
171 );
172 }
173
174 if ($this->checkPermissionBool('write')) {
175 $this->tabs_gui->addTab(
176 self::UI_TAB_ID_SETTINGS,
177 $this->lng->txt('settings'),
178 $this->ctrl->getLinkTarget($this, self::UI_CMD_EDIT)
179 );
180 }
181
182 if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) {
183 $this->tabs_gui->addTab(
184 self::UI_TAB_ID_LP,
185 $this->lng->txt('learning_progress'),
186 $this->ctrl->getLinkTargetByClass(ilLearningProgressGUI::class)
187 );
188 }
189
190 if ($this->checkPermissionBool('write')) {
191 $this->tabs_gui->addTab(
192 self::UI_TAB_ID_MD,
193 $this->lng->txt('meta_data'),
194 $this->ctrl->getLinkTargetByClass(ilMDEditorGUI::class)
195 );
196 }
197
198 if ($this->checkPermissionBool('write')) {
199 $this->tabs_gui->addTab(
200 self::UI_TAB_ID_EXPORT,
201 $this->lng->txt('export'),
202 $this->ctrl->getLinkTargetByClass(ilExportGUI::class)
203 );
204 }
205
206 if ($this->checkPermissionBool('edit_permission')) {
207 $this->tabs_gui->addTab(
208 self::UI_TAB_ID_PERMISSIONS,
209 $this->lng->txt('perm_settings'),
210 $this->ctrl->getLinkTargetByClass(ilPermissionGUI::class, 'perm')
211 );
212 }
213 }
214
215 public function executeCommand(): void
216 {
217 $nextClass = $this->ctrl->getNextClass($this) ?? '';
218 $cmd = $this->ctrl->getCmd(self::UI_CMD_VIEW) ?? '';
219
220 $this->addToNavigationHistory();
221
222 switch (strtolower($nextClass)) {
223 case strtolower(TranslationGUI::class):
224 $this->checkPermission('write');
225
226 $this->prepareOutput();
227 $this->tabs_gui->activateTab(self::UI_TAB_ID_SETTINGS);
228 $this->setSettingsSubTabs(self::UI_TAB_ID_I18N);
229
230 $transgui = new TranslationGUI(
231 $this->getObject(),
232 $this->lng,
233 $this->access,
234 $this->user,
235 $this->ctrl,
236 $this->tpl,
237 $this->ui_factory,
238 $this->ui_renderer,
239 $this->http,
240 $this->refinery,
241 $this->toolbar
242 );
243 $this->ctrl->forwardCommand($transgui);
244 break;
245
246 case strtolower(ilObjectContentStyleSettingsGUI::class):
247 $this->checkPermission('write');
248 $this->prepareOutput();
249
250 if ($this->in_page_editor_style_context) {
251 $this->tabs_gui->setBackTarget(
252 $this->lng->txt('back'),
253 $this->ctrl->getLinkTarget(new ilContentPagePageGUI($this->object->getId()), 'edit')
254 );
255 } else {
256 $this->tabs_gui->activateTab(self::UI_TAB_ID_SETTINGS);
257 $this->setSettingsSubTabs(self::UI_TAB_ID_STYLE);
258 }
259
260 $settings_gui = $this->content_style_gui
261 ->objectSettingsGUIForRefId(
262 null,
263 $this->object->getRefId()
264 );
265 $this->ctrl->forwardCommand($settings_gui);
266 break;
267
268 case strtolower(ilContentPagePageGUI::class):
269 $isMediaRequest = in_array(
270 strtolower($cmd),
271 array_map('strtolower', [
276 ]),
277 true
278 );
279 if ($isMediaRequest) {
280 if (!$this->checkPermissionBool('read')) {
281 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
282 }
283 } elseif (!$this->checkPermissionBool('write') || $this->user->isAnonymous()) {
284 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
285 }
286
287 $this->prepareOutput();
288
289 $this->content_style_gui->addCss($this->tpl, $this->object->getRefId());
290 $this->tpl->setCurrentBlock('SyntaxStyle');
291 $this->tpl->setVariable('LOCATION_SYNTAX_STYLESHEET', ilObjStyleSheet::getSyntaxStylePath());
292 $this->tpl->parseCurrentBlock();
293
295 $obj = $this->object;
296 $forwarder = new ilContentPagePageCommandForwarder(
297 $this->http,
298 $this->ctrl,
299 $this->tabs_gui,
300 $this->lng,
301 $obj,
302 $this->translation,
303 $this->user,
304 $this->refinery,
305 $this->content_style_domain
306 );
307 $forwarder->setIsMediaRequest($isMediaRequest);
308
309 $forwarder->addUpdateListener(function (PageUpdatedEvent $event): void {
310 $this->pageMetricsService->store(
312 $this->object->getId(),
313 $event->page()->getLanguage()
314 )
315 );
316 });
317
318 $pageContent = $forwarder->forward();
319 if ($pageContent !== '') {
320 $this->tpl->setContent($pageContent);
321 }
322 break;
323
324 case strtolower(ilInfoScreenGUI::class):
325 if (!$this->infoScreenEnabled) {
326 return;
327 }
328 $this->prepareOutput();
329
330 $this->infoScreenForward();
331 break;
332
333 case strtolower(ilCommonActionDispatcherGUI::class):
334 $this->prepareOutput();
336 break;
337
338 case strtolower(ilPermissionGUI::class):
339 $this->checkPermission('edit_permission');
340
341 $this->prepareOutput();
342 $this->tabs_gui->activateTab(self::UI_TAB_ID_PERMISSIONS);
343
344 $this->ctrl->forwardCommand(new ilPermissionGUI($this));
345 break;
346
347 case strtolower(ilMDEditorGUI::class):
348 $this->checkPermission('write');
349
350 $this->prepareOutput();
351 $this->tabs_gui->activateTab(self::UI_TAB_ID_MD);
352
353 $md_gui = new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
354 $md_gui->addObserver($this->object, 'MDUpdateListener', 'General');
355 $this->ctrl->forwardCommand($md_gui);
356 break;
357
358 case strtolower(ilLearningProgressGUI::class):
359 if (!ilLearningProgressAccess::checkAccess($this->object->getRefId())) {
360 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
361 }
362
363 $this->prepareOutput();
364 $this->tabs_gui->activateTab(self::UI_TAB_ID_LP);
365
366 $usr_id = 0;
367 if ($this->http->wrapper()->query()->has('user_id')) {
368 $usr_id = $this->http->wrapper()->query()->retrieve(
369 'user_id',
370 $this->refinery->kindlyTo()->int()
371 );
372 }
373
374 $this->ctrl->forwardCommand(
377 $this->object->getRefId(),
378 $usr_id === 0 ? $this->user->getId() : $usr_id
379 )
380 );
381 break;
382
383 case strtolower(ilExportGUI::class):
384 $this->checkPermission('write');
385
386 $this->prepareOutput();
387 $this->tabs_gui->activateTab(self::UI_TAB_ID_EXPORT);
388
389 $gui = new ilExportGUI($this);
390 $this->ctrl->forwardCommand($gui);
391 break;
392
393 case strtolower(ilObjectCopyGUI::class):
394 $this->tpl->loadStandardTemplate();
395
396 $gui = new ilObjectCopyGUI($this);
397 $gui->setType(self::OBJ_TYPE);
398
399 $this->ctrl->forwardCommand($gui);
400 break;
401
402 default:
403 $settingsCommands = array_map('strtolower', [self::UI_CMD_EDIT, self::UI_CMD_UPDATE]);
404 switch (true) {
405 case in_array(strtolower($cmd), $settingsCommands, true):
407 break;
408 }
409
410 parent::executeCommand();
411 }
412
413 if (!$this->in_page_editor_style_context &&
414 strtolower($nextClass) !== strtolower(ilObjectContentStyleSettingsGUI::class) &&
415 (strtolower($cmd) !== strtolower(self::UI_CMD_EDIT) || strtolower($nextClass) !== strtolower(
416 ilContentPagePageGUI::class
417 ))) {
418 $this->renderHeaderActions();
419 }
420
421 }
422
423 protected function addToDesk(): void
424 {
425 $this->addToDeskObject();
426 }
427
428 protected function removeFromDesk(): void
429 {
430 $this->removeFromDeskObject();
431 }
432
433 public function addToNavigationHistory(): void
434 {
435 if (!$this->getCreationMode() && $this->checkPermissionBool('read')) {
436 $this->navHistory->addItem(
437 $this->object->getRefId(),
438 ilLink::_getLink($this->object->getRefId(), $this->object->getType()),
439 $this->object->getType()
440 );
441 }
442 }
443
444 public function renderHeaderActions(): void
445 {
446 if (!$this->getCreationMode() && $this->checkPermissionBool('read')) {
447 $this->addHeaderAction();
448 }
449 }
450
451 public function infoScreenForward(): void
452 {
453 if (!$this->infoScreenEnabled) {
454 return;
455 }
456
457 if (!$this->checkPermissionBool('visible') && !$this->checkPermissionBool('read')) {
458 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
459 }
460
461 if (strtolower($this->ctrl->getCmd() ?? '') === 'infoscreen') {
462 $this->ctrl->redirectByClass(ilInfoScreenGUI::class, 'showSummary');
463 }
464
465 $this->tabs_gui->activateTab(self::UI_TAB_ID_INFO);
466
467 $info = new ilInfoScreenGUI($this);
468 $info->enableLearningProgress();
469 $info->enablePrivateNotes();
470 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
471
472 $this->ctrl->forwardCommand($info);
473 }
474
475 protected function setSettingsSubTabs(string $activeTab): void
476 {
477 if ($this->checkPermissionBool('write')) {
478 $this->tabs_gui->addSubTab(
479 self::UI_TAB_ID_SETTINGS,
480 $this->lng->txt('general'),
481 $this->ctrl->getLinkTarget($this, self::UI_CMD_EDIT)
482 );
483
484 $this->tabs_gui->addSubTab(
485 self::UI_TAB_ID_STYLE,
486 $this->lng->txt('cont_style'),
487 $this->ctrl->getLinkTargetByClass("ilobjectcontentstylesettingsgui", "")
488 );
489
490 $this->tabs_gui->addSubTab(
491 self::UI_TAB_ID_I18N,
492 $this->lng->txt('obj_multilinguality'),
493 $this->ctrl->getLinkTargetByClass(TranslationGUI::class)
494 );
495
496 $this->tabs_gui->activateSubTab($activeTab);
497 }
498 }
499
500 protected function addLocatorItems(): void
501 {
502 if ($this->object instanceof ilObject) {
503 $this->locator->addItem(
504 $this->object->getTitle(),
505 $this->ctrl->getLinkTarget($this, self::UI_CMD_VIEW),
506 '',
507 $this->object->getRefId()
508 );
509 }
510 }
511
512 public function infoScreen(): void
513 {
514 $this->infoScreenForward();
515 }
516
517 public function view(): void
518 {
519 $this->checkPermission('read');
520
521 $this->populateContentToolbar();
522
523 $this->tabs_gui->activateTab(self::UI_TAB_ID_CONTENT);
524
525 $this->tpl->setPermanentLink($this->object->getType(), $this->object->getRefId(), '', '_top');
526
527 $this->tpl->setContent($this->getContent());
528 }
529
530 protected function populateContentToolbar(): void
531 {
532 if (!$this->user->isAnonymous() && $this->checkPermissionBool('write')) {
533 $this->lng->loadLanguageModule('cntr');
534 $this->toolbar->addComponent(
535 $this->uiServices->factory()->button()->primary(
536 $this->lng->txt('cntr_text_media_editor'),
537 $this->ctrl->getLinkTargetByClass(ilContentPagePageGUI::class, 'edit')
538 )
539 );
540 }
541 }
542
547 public function getContent(string $ctrlLink = ''): string
548 {
549 if ($this->checkPermissionBool('read')) {
550 $this->object->trackProgress($this->user->getId());
551
552 $this->initStyleSheets();
553
554 $forwarder = new ilContentPagePageCommandForwarder(
555 $this->http,
556 $this->ctrl,
557 $this->tabs_gui,
558 $this->lng,
559 $this->object,
560 $this->translation,
561 $this->user,
562 $this->refinery,
563 $this->content_style_domain
564 );
566
567 return $forwarder->forward($ctrlLink);
568 }
569
570 return '';
571 }
572
573 protected function initStyleSheets(): void
574 {
575 $this->content_style_gui->addCss($this->tpl, $this->object->getRefId());
576 $this->tpl->setCurrentBlock('SyntaxStyle');
577 $this->tpl->setVariable('LOCATION_SYNTAX_STYLESHEET', ilObjStyleSheet::getSyntaxStylePath());
578 $this->tpl->parseCurrentBlock();
579 }
580
581 protected function afterSave(ilObject $new_object): void
582 {
583 $new_object->getObjectProperties()->storePropertyTranslations(
584 $new_object->getObjectTranslation()->withLanguage(
585 new Language(
586 $this->lng->getDefaultLanguage(),
587 $new_object->getTitle(),
588 $new_object->getDescription(),
589 true
590 )
591 )
592 );
593
594 $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_added'), true);
595 $this->ctrl->redirect($this, 'edit');
596 }
597
598 protected function setTitleAndDescription(): void
599 {
600 parent::setTitleAndDescription();
601
602 $icon = ilObject::_getIcon($this->object->getId(), 'big', $this->object->getType());
603 $this->tpl->setTitleIcon($icon, $this->lng->txt('obj_' . $this->object->getType()));
604 }
605
606 protected function initEditCustomForm(ilPropertyFormGUI $a_form): void
607 {
608 $this->addAvailabilitySection($a_form);
609
610 $presentationHeader = new ilFormSectionHeaderGUI();
611 $presentationHeader->setTitle($this->lng->txt('settings_presentation_header'));
612 $a_form->addItem($presentationHeader);
613
614 $this->object_service->commonSettings()->legacyForm($a_form, $this->object)->addIcon();
615 $this->object_service->commonSettings()->legacyForm($a_form, $this->object)->addTileImage();
616
617 $sh = new ilFormSectionHeaderGUI();
618 $sh->setTitle($this->lng->txt('obj_features'));
619 $a_form->addItem($sh);
620
622 $this->object->getId(),
623 $a_form,
624 [
626 ]
627 );
628
629 if ($this->getCreationMode() !== true && count($this->object->getObjectTranslation()->getLanguages()) > 1) {
630 $language = '';
631 foreach ($this->lom_services->dataHelper()->getAllLanguages() as $lom_lang) {
632 if ($lom_lang->value() === $this->object->getObjectTranslation()->getDefaultLanguage()) {
633 $language = $lom_lang->presentableLabel();
634 }
635 }
636 $a_form->getItemByPostVar('title')
637 ->setInfo(
638 implode(
639 ': ',
640 [
641 $this->lng->txt('language'),
642 $language
643 ]
644 )
645 );
646 }
647 }
648
649 private function addAvailabilitySection(ilPropertyFormGUI $form): void
650 {
651 $section = new ilFormSectionHeaderGUI();
652 $section->setTitle($this->lng->txt('rep_activation_availability'));
653 $form->addItem($section);
654
655 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'activation_online');
656 $online->setInfo($this->lng->txt('copa_activation_online_info'));
657 $form->addItem($online);
658 }
659
660 protected function getEditFormCustomValues(array &$a_values): void
661 {
662 if (count($this->object->getObjectTranslation()->getLanguages()) > 1) {
663 $a_values['title'] = $this->object->getObjectTranslation()->getDefaultTitle();
664 $a_values['desc'] = $this->object->getObjectTranslation()->getDefaultDescription();
665 }
666
667 $a_values['activation_online'] = $this->object->getOfflineStatus() === false;
669 }
670
671 protected function updateCustom(ilPropertyFormGUI $form): void
672 {
673 $this->object->setOfflineStatus(!(bool) $form->getInput('activation_online'));
674 $this->object->update();
675
677 $this->object->getId(),
678 $form,
679 [
681 ]
682 );
683 $this->object_service->commonSettings()->legacyForm($form, $this->object)->saveIcon();
684 $this->object_service->commonSettings()->legacyForm($form, $this->object)->saveTileImage();
685 }
686
687 public function editStyleProperties(): void
688 {
689 $this->content_style_gui->redirectToObjectSettings();
690 }
691}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:36
Class handles translation mode for an object.
External facade for object content styles.
error(string $a_errmsg)
return true
This class represents a checkbox property in a property form.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)
final const string PRESENTATION_MODE_PRESENTATION
presentation mode for requesting
@ilCtrl_Calls ilContentPagePageGUI: ilPageEditorGUI, ilEditClipboardGUI, ilMDEditorGUI @ilCtrl_Calls ...
Export User Interface Class.
This class represents a section header in a property form.
Help GUI class.
Class ilInfoScreenGUI.
Learning progress access checks.
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
Class ilObjUserTrackingGUI.
Last visited history for repository items.
@ilCtrl_isCalledBy ilObjContentPageGUI: ilRepositoryGUI @ilCtrl_isCalledBy ilObjContentPageGUI: ilAdm...
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
static _goto(string $target)
addLocatorItems()
Functions to be overwritten.
setSettingsSubTabs(string $activeTab)
getEditFormCustomValues(array &$a_values)
Add values to custom edit fields.
ILIAS Style Content Object ObjectFacade $content_style_domain
afterSave(ilObject $new_object)
Post (successful) object creation hook.
getType()
Functions that must be overwritten.
setTabs()
create tabs (repository/workspace switch)
view()
view object content (repository/workspace switch)
readonly ILIAS Style Content GUIService $content_style_gui
readonly ilNavigationHistory $navHistory
readonly ILIAS DI UIServices $uiServices
initEditCustomForm(ilPropertyFormGUI $a_form)
Add custom fields to update form.
updateCustom(ilPropertyFormGUI $form)
Insert custom update form values into object.
addAvailabilitySection(ilPropertyFormGUI $form)
readonly Translations $translation
readonly PageMetricsService $pageMetricsService
readonly LOMServices $lom_services
getContent(string $ctrlLink='')
readonly bool $in_page_editor_style_context
New implementation of ilObjectGUI.
executeCommand()
execute command
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
prepareOutput(bool $show_sub_objects=true)
GUI class for the workflow of copying objects.
addHeaderAction()
Add header action menu.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
Class ilObject Basic functions for all objects.
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
This class represents a property form user interface.
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
getItemByPostVar(string $a_post_var)
const ROOT_FOLDER_ID
Definition: constants.php:32
$info
Definition: entry_point.php:21
Interface ilContentPageObjectConstants.
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
if(!file_exists('../ilias.ini.php'))
global $DIC
Definition: shib_login.php:26
$refId
Definition: xapitoken.php:56