ILIAS  trunk Revision v12.0_alpha-1227-g7ff6d300864
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 $this->lng->loadLanguageModule('obj');
78
79 if ($this->object instanceof ilObjContentPage) {
80 $this->infoScreenEnabled = (bool) ilContainer::_lookupContainerSetting(
81 $this->object->getId(),
83 '1'
84 );
85 }
86
87 $this->pageMetricsService = new PageMetricsService(
88 new PageMetricsRepositoryImp($DIC->database()),
89 $DIC->refinery()
90 );
91 $cs = $DIC->contentStyle();
92 $this->content_style_gui = $cs->gui();
93 if (is_object($this->object)) {
94 $this->content_style_domain = $cs->domain()->styleForRefId($this->object->getRefId());
95 $this->translation = $this->object->getObjectProperties()->getPropertyTranslations();
96 }
97
98 $this->in_page_editor_style_context = $this->http->wrapper()->query()->has(
99 self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT
100 );
101 $this->ctrl->saveParameterByClass(
102 ilObjectContentStyleSettingsGUI::class,
103 self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT
104 );
105 }
106
107 public static function _goto(string $target): void
108 {
109 global $DIC;
110 $main_tpl = $DIC->ui()->mainTemplate();
111
112 $targetAttributes = explode('_', $target);
113 $refId = (int) $targetAttributes[0];
114
115 if ($refId <= 0) {
116 $DIC['ilErr']->raiseError($DIC->language()->txt('msg_no_perm_read'), $DIC['ilErr']->FATAL);
117 }
118
119 if ($DIC->access()->checkAccess('read', '', $refId)) {
120 $DIC->ctrl()->setTargetScript('ilias.php');
121 $DIC->ctrl()->setParameterByClass(self::class, 'ref_id', $refId);
122 $DIC->ctrl()->redirectByClass([
123 ilRepositoryGUI::class,
124 self::class,
125 ], self::UI_CMD_VIEW);
126 } elseif ($DIC->access()->checkAccess('visible', '', $refId)) {
128 } elseif ($DIC->access()->checkAccess('read', '', ROOT_FOLDER_ID)) {
129 $main_tpl->setOnScreenMessage(
130 'info',
131 sprintf(
132 $DIC->language()->txt('msg_no_perm_read_item'),
134 ),
135 true
136 );
137
138 $DIC->ctrl()->setTargetScript('ilias.php');
139 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class, 'ref_id', ROOT_FOLDER_ID);
140 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class);
141 }
142
143 $DIC['ilErr']->raiseError($DIC->language()->txt('msg_no_perm_read'), $DIC['ilErr']->FATAL);
144 }
145
146 public function getType(): string
147 {
148 return self::OBJ_TYPE;
149 }
150
151 protected function setTabs(): void
152 {
153 if ($this->in_page_editor_style_context) {
154 return;
155 }
156
157 $this->help->setScreenIdComponent($this->object->getType());
158
159 if ($this->checkPermissionBool('read')) {
160 $this->tabs_gui->addTab(
161 self::UI_TAB_ID_CONTENT,
162 $this->lng->txt('content'),
163 $this->ctrl->getLinkTarget($this, self::UI_CMD_VIEW)
164 );
165 }
166
167 if ($this->infoScreenEnabled && ($this->checkPermissionBool('visible') || $this->checkPermissionBool('read'))) {
168 $this->tabs_gui->addTab(
169 self::UI_TAB_ID_INFO,
170 $this->lng->txt('info_short'),
171 $this->ctrl->getLinkTargetByClass(ilInfoScreenGUI::class, 'showSummary')
172 );
173 }
174
175 if ($this->checkPermissionBool('write')) {
176 $this->tabs_gui->addTab(
177 self::UI_TAB_ID_SETTINGS,
178 $this->lng->txt('settings'),
179 $this->ctrl->getLinkTarget($this, self::UI_CMD_EDIT)
180 );
181 }
182
183 if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) {
184 $this->tabs_gui->addTab(
185 self::UI_TAB_ID_LP,
186 $this->lng->txt('learning_progress'),
187 $this->ctrl->getLinkTargetByClass(ilLearningProgressGUI::class)
188 );
189 }
190
191 if ($this->checkPermissionBool('write')) {
192 $this->tabs_gui->addTab(
193 self::UI_TAB_ID_MD,
194 $this->lng->txt('meta_data'),
195 $this->ctrl->getLinkTargetByClass(ilMDEditorGUI::class)
196 );
197 }
198
199 if ($this->checkPermissionBool('write')) {
200 $this->tabs_gui->addTab(
201 self::UI_TAB_ID_EXPORT,
202 $this->lng->txt('export'),
203 $this->ctrl->getLinkTargetByClass(ilExportGUI::class)
204 );
205 }
206
207 if ($this->checkPermissionBool('edit_permission')) {
208 $this->tabs_gui->addTab(
209 self::UI_TAB_ID_PERMISSIONS,
210 $this->lng->txt('perm_settings'),
211 $this->ctrl->getLinkTargetByClass(ilPermissionGUI::class, 'perm')
212 );
213 }
214 }
215
216 public function executeCommand(): void
217 {
218 $nextClass = $this->ctrl->getNextClass($this) ?? '';
219 $cmd = $this->ctrl->getCmd(self::UI_CMD_VIEW) ?? '';
220
221 $this->addToNavigationHistory();
222
223 switch (strtolower($nextClass)) {
224 case strtolower(TranslationGUI::class):
225 $this->checkPermission('write');
226
227 $this->prepareOutput();
228 $this->tabs_gui->activateTab(self::UI_TAB_ID_SETTINGS);
229 $this->setSettingsSubTabs(self::UI_TAB_ID_I18N);
230
231 $transgui = new TranslationGUI(
232 $this->getObject(),
233 $this->lng,
234 $this->access,
235 $this->user,
236 $this->ctrl,
237 $this->tpl,
238 $this->ui_factory,
239 $this->ui_renderer,
240 $this->http,
241 $this->refinery,
242 $this->toolbar
243 );
244 $this->ctrl->forwardCommand($transgui);
245 break;
246
247 case strtolower(ilObjectContentStyleSettingsGUI::class):
248 $this->checkPermission('write');
249 $this->prepareOutput();
250
251 if ($this->in_page_editor_style_context) {
252 $this->tabs_gui->setBackTarget(
253 $this->lng->txt('back'),
254 $this->ctrl->getLinkTarget(new ilContentPagePageGUI($this->object->getId()), 'edit')
255 );
256 } else {
257 $this->tabs_gui->activateTab(self::UI_TAB_ID_SETTINGS);
258 $this->setSettingsSubTabs(self::UI_TAB_ID_STYLE);
259 }
260
261 $settings_gui = $this->content_style_gui
262 ->objectSettingsGUIForRefId(
263 null,
264 $this->object->getRefId()
265 );
266 $this->ctrl->forwardCommand($settings_gui);
267 break;
268
269 case strtolower(ilContentPagePageGUI::class):
270 $isMediaRequest = in_array(
271 strtolower($cmd),
272 array_map('strtolower', [
277 ]),
278 true
279 );
280 if ($isMediaRequest) {
281 if (!$this->checkPermissionBool('read')) {
282 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
283 }
284 } elseif (!$this->checkPermissionBool('write') || $this->user->isAnonymous()) {
285 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
286 }
287
288 $this->prepareOutput();
289
290 $this->content_style_gui->addCss($this->tpl, $this->object->getRefId());
291 $this->tpl->setCurrentBlock('SyntaxStyle');
292 $this->tpl->setVariable('LOCATION_SYNTAX_STYLESHEET', ilObjStyleSheet::getSyntaxStylePath());
293 $this->tpl->parseCurrentBlock();
294
296 $obj = $this->object;
297 $forwarder = new ilContentPagePageCommandForwarder(
298 $this->http,
299 $this->ctrl,
300 $this->tabs_gui,
301 $this->lng,
302 $obj,
303 $this->translation,
304 $this->user,
305 $this->refinery,
306 $this->content_style_domain
307 );
308 $forwarder->setIsMediaRequest($isMediaRequest);
309
310 $forwarder->addUpdateListener(function (PageUpdatedEvent $event): void {
311 $this->pageMetricsService->store(
313 $this->object->getId(),
314 $event->page()->getLanguage()
315 )
316 );
317 });
318
319 $pageContent = $forwarder->forward();
320 if ($pageContent !== '') {
321 $this->tpl->setContent($pageContent);
322 }
323 break;
324
325 case strtolower(ilInfoScreenGUI::class):
326 if (!$this->infoScreenEnabled) {
327 return;
328 }
329 $this->prepareOutput();
330
331 $this->infoScreenForward();
332 break;
333
334 case strtolower(ilCommonActionDispatcherGUI::class):
335 $this->prepareOutput();
337 break;
338
339 case strtolower(ilPermissionGUI::class):
340 $this->checkPermission('edit_permission');
341
342 $this->prepareOutput();
343 $this->tabs_gui->activateTab(self::UI_TAB_ID_PERMISSIONS);
344
345 $this->ctrl->forwardCommand(new ilPermissionGUI($this));
346 break;
347
348 case strtolower(ilMDEditorGUI::class):
349 $this->checkPermission('write');
350
351 $this->prepareOutput();
352 $this->tabs_gui->activateTab(self::UI_TAB_ID_MD);
353
354 $md_gui = new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType(), $this->object->getRefId());
355 $md_gui->addObserver($this->object, 'MDUpdateListener', 'General');
356 $this->ctrl->forwardCommand($md_gui);
357 break;
358
359 case strtolower(ilLearningProgressGUI::class):
360 if (!ilLearningProgressAccess::checkAccess($this->object->getRefId())) {
361 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
362 }
363
364 $this->prepareOutput();
365 $this->tabs_gui->activateTab(self::UI_TAB_ID_LP);
366
367 $usr_id = 0;
368 if ($this->http->wrapper()->query()->has('user_id')) {
369 $usr_id = $this->http->wrapper()->query()->retrieve(
370 'user_id',
371 $this->refinery->kindlyTo()->int()
372 );
373 }
374
375 $this->ctrl->forwardCommand(
378 $this->object->getRefId(),
379 $usr_id === 0 ? $this->user->getId() : $usr_id
380 )
381 );
382 break;
383
384 case strtolower(ilExportGUI::class):
385 $this->checkPermission('write');
386
387 $this->prepareOutput();
388 $this->tabs_gui->activateTab(self::UI_TAB_ID_EXPORT);
389
390 $gui = new ilExportGUI($this);
391 $this->ctrl->forwardCommand($gui);
392 break;
393
394 case strtolower(ilObjectCopyGUI::class):
395 $this->tpl->loadStandardTemplate();
396
397 $gui = new ilObjectCopyGUI($this);
398 $gui->setType(self::OBJ_TYPE);
399
400 $this->ctrl->forwardCommand($gui);
401 break;
402
403 default:
404 $settingsCommands = array_map('strtolower', [self::UI_CMD_EDIT, self::UI_CMD_UPDATE]);
405 switch (true) {
406 case in_array(strtolower($cmd), $settingsCommands, true):
408 break;
409 }
410
411 parent::executeCommand();
412 }
413
414 if (!$this->in_page_editor_style_context &&
415 strtolower($nextClass) !== strtolower(ilObjectContentStyleSettingsGUI::class) &&
416 (strtolower($cmd) !== strtolower(self::UI_CMD_EDIT) || strtolower($nextClass) !== strtolower(
417 ilContentPagePageGUI::class
418 ))) {
419 $this->renderHeaderActions();
420 }
421
422 }
423
424 protected function addToDesk(): void
425 {
426 $this->addToDeskObject();
427 }
428
429 protected function removeFromDesk(): void
430 {
431 $this->removeFromDeskObject();
432 }
433
434 public function addToNavigationHistory(): void
435 {
436 if (!$this->getCreationMode() && $this->checkPermissionBool('read')) {
437 $this->navHistory->addItem(
438 $this->object->getRefId(),
439 ilLink::_getLink($this->object->getRefId(), $this->object->getType()),
440 $this->object->getType()
441 );
442 }
443 }
444
445 public function renderHeaderActions(): void
446 {
447 if (!$this->getCreationMode() && $this->checkPermissionBool('read')) {
448 $this->addHeaderAction();
449 }
450 }
451
452 public function infoScreenForward(): void
453 {
454 if (!$this->infoScreenEnabled) {
455 return;
456 }
457
458 if (!$this->checkPermissionBool('visible') && !$this->checkPermissionBool('read')) {
459 $this->error->raiseError($this->lng->txt('permission_denied'), $this->error->MESSAGE);
460 }
461
462 if (strtolower($this->ctrl->getCmd() ?? '') === 'infoscreen') {
463 $this->ctrl->redirectByClass(ilInfoScreenGUI::class, 'showSummary');
464 }
465
466 $this->tabs_gui->activateTab(self::UI_TAB_ID_INFO);
467
468 $info = new ilInfoScreenGUI($this);
469 $info->enableLearningProgress();
470 $info->enablePrivateNotes();
471 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
472
473 $this->ctrl->forwardCommand($info);
474 }
475
476 protected function setSettingsSubTabs(string $activeTab): void
477 {
478 if ($this->checkPermissionBool('write')) {
479 $this->tabs_gui->addSubTab(
480 self::UI_TAB_ID_SETTINGS,
481 $this->lng->txt('general'),
482 $this->ctrl->getLinkTarget($this, self::UI_CMD_EDIT)
483 );
484
485 $this->tabs_gui->addSubTab(
486 self::UI_TAB_ID_STYLE,
487 $this->lng->txt('cont_style'),
488 $this->ctrl->getLinkTargetByClass("ilobjectcontentstylesettingsgui", "")
489 );
490
491 $this->tabs_gui->addSubTab(
492 self::UI_TAB_ID_I18N,
493 $this->lng->txt('obj_multilinguality'),
494 $this->ctrl->getLinkTargetByClass(TranslationGUI::class)
495 );
496
497 $this->tabs_gui->activateSubTab($activeTab);
498 }
499 }
500
501 protected function addLocatorItems(): void
502 {
503 if ($this->object instanceof ilObject) {
504 $this->locator->addItem(
505 $this->object->getTitle(),
506 $this->ctrl->getLinkTarget($this, self::UI_CMD_VIEW),
507 '',
508 $this->object->getRefId()
509 );
510 }
511 }
512
513 public function infoScreen(): void
514 {
515 $this->infoScreenForward();
516 }
517
518 public function view(): void
519 {
520 $this->checkPermission('read');
521
522 $this->populateContentToolbar();
523
524 $this->tabs_gui->activateTab(self::UI_TAB_ID_CONTENT);
525
526 $this->tpl->setPermanentLink($this->object->getType(), $this->object->getRefId(), '', '_top');
527
528 $this->tpl->setContent($this->getContent());
529 }
530
531 protected function populateContentToolbar(): void
532 {
533 if (!$this->user->isAnonymous() && $this->checkPermissionBool('write')) {
534 $this->lng->loadLanguageModule('cntr');
535 $this->toolbar->addComponent(
536 $this->uiServices->factory()->button()->primary(
537 $this->lng->txt('cntr_text_media_editor'),
538 $this->ctrl->getLinkTargetByClass(ilContentPagePageGUI::class, 'edit')
539 )
540 );
541 }
542 }
543
548 public function getContent(string $ctrlLink = ''): string
549 {
550 if ($this->checkPermissionBool('read')) {
551 $this->object->trackProgress($this->user->getId());
552
553 $this->initStyleSheets();
554
555 $forwarder = new ilContentPagePageCommandForwarder(
556 $this->http,
557 $this->ctrl,
558 $this->tabs_gui,
559 $this->lng,
560 $this->object,
561 $this->translation,
562 $this->user,
563 $this->refinery,
564 $this->content_style_domain
565 );
567
568 return $forwarder->forward($ctrlLink);
569 }
570
571 return '';
572 }
573
574 protected function initStyleSheets(): void
575 {
576 $this->content_style_gui->addCss($this->tpl, $this->object->getRefId());
577 $this->tpl->setCurrentBlock('SyntaxStyle');
578 $this->tpl->setVariable('LOCATION_SYNTAX_STYLESHEET', ilObjStyleSheet::getSyntaxStylePath());
579 $this->tpl->parseCurrentBlock();
580 }
581
582 protected function afterSave(ilObject $new_object): void
583 {
584 $new_object->getObjectProperties()->storePropertyTranslations(
585 $new_object->getObjectTranslation()->withLanguage(
586 new Language(
587 $this->lng->getDefaultLanguage(),
588 $new_object->getTitle(),
589 $new_object->getDescription(),
590 true
591 )
592 )
593 );
594
595 $this->tpl->setOnScreenMessage('success', $this->lng->txt('object_added'), true);
596 $this->ctrl->redirect($this, 'edit');
597 }
598
599 protected function setTitleAndDescription(): void
600 {
601 parent::setTitleAndDescription();
602
603 $icon = ilObject::_getIcon($this->object->getId(), 'big', $this->object->getType());
604 $this->tpl->setTitleIcon($icon, $this->lng->txt('obj_' . $this->object->getType()));
605 }
606
607 protected function initEditCustomForm(ilPropertyFormGUI $a_form): void
608 {
609 $this->addAvailabilitySection($a_form);
610
611 $presentationHeader = new ilFormSectionHeaderGUI();
612 $presentationHeader->setTitle($this->lng->txt('settings_presentation_header'));
613 $a_form->addItem($presentationHeader);
614
615 $this->object_service->commonSettings()->legacyForm($a_form, $this->object)->addIcon();
616 $this->object_service->commonSettings()->legacyForm($a_form, $this->object)->addTileImage();
617
618 $sh = new ilFormSectionHeaderGUI();
619 $sh->setTitle($this->lng->txt('obj_features'));
620 $a_form->addItem($sh);
621
623 $this->object->getId(),
624 $a_form,
625 [
627 ]
628 );
629
630 if ($this->getCreationMode() !== true && count($this->object->getObjectTranslation()->getLanguages()) > 1) {
631 $language = '';
632 foreach ($this->lom_services->dataHelper()->getAllLanguages() as $lom_lang) {
633 if ($lom_lang->value() === $this->object->getObjectTranslation()->getDefaultLanguage()) {
634 $language = $lom_lang->presentableLabel();
635 }
636 }
637 $a_form->getItemByPostVar('title')
638 ->setInfo(
639 implode(
640 ': ',
641 [
642 $this->lng->txt('language'),
643 $language
644 ]
645 )
646 );
647 }
648 }
649
650 private function addAvailabilitySection(ilPropertyFormGUI $form): void
651 {
652 $section = new ilFormSectionHeaderGUI();
653 $section->setTitle($this->lng->txt('rep_activation_availability'));
654 $form->addItem($section);
655
656 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'activation_online');
657 $online->setInfo($this->lng->txt('copa_activation_online_info'));
658 $form->addItem($online);
659 }
660
661 protected function getEditFormCustomValues(array &$a_values): void
662 {
663 if (count($this->object->getObjectTranslation()->getLanguages()) > 1) {
664 $a_values['title'] = $this->object->getObjectTranslation()->getDefaultTitle();
665 $a_values['desc'] = $this->object->getObjectTranslation()->getDefaultDescription();
666 }
667
668 $a_values['activation_online'] = $this->object->getOfflineStatus() === false;
670 }
671
672 protected function updateCustom(ilPropertyFormGUI $form): void
673 {
674 $this->object->setOfflineStatus(!(bool) $form->getInput('activation_online'));
675 $this->object->update();
676
678 $this->object->getId(),
679 $form,
680 [
682 ]
683 );
684 $this->object_service->commonSettings()->legacyForm($form, $this->object)->saveIcon();
685 $this->object_service->commonSettings()->legacyForm($form, $this->object)->saveTileImage();
686 }
687
688 public function editStyleProperties(): void
689 {
690 $this->content_style_gui->redirectToObjectSettings();
691 }
692}
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