ILIAS  release_8 Revision v8.25-1-g13de6a5eca6
class.ilObjDataCollectionGUI.php
Go to the documentation of this file.
1<?php
2
31{
32 public const GET_DCL_GTR = "dcl_gtr";
33 public const GET_REF_ID = "ref_id";
34 public const GET_VIEW_ID = "tableview_id";
35
36 public const TAB_EDIT_DCL = 'settings';
37 public const TAB_LIST_TABLES = 'dcl_tables';
38 public const TAB_EXPORT = 'export';
39 public const TAB_LIST_PERMISSIONS = 'perm_settings';
40 public const TAB_INFO = 'info_short';
41 public const TAB_CONTENT = 'content';
42
43 public ?ilObject $object = null;
44
48
49 protected ilCtrl $ctrl;
50 protected ilLanguage $lng;
52 protected ilTabsGUI $tabs;
53 protected int $table_id;
54
55 public function __construct(int $a_id = 0, int $a_id_type = self::REPOSITORY_NODE_ID, int $a_parent_node_id = 0)
56 {
57 global $DIC;
58 parent::__construct($a_id, $a_id_type, $a_parent_node_id);
59
60 $this->http = $DIC->http();
61 $this->tabs = $DIC->tabs();
62
63 $this->lng->loadLanguageModule("dcl");
64 $this->lng->loadLanguageModule('content');
65 $this->lng->loadLanguageModule('obj');
66 $this->lng->loadLanguageModule('cntr');
67
68 $this->setTableId($this->getRefId());
69
70 $this->dclEndPoint = ilDataCollectionEndpointAdapter::new();
71 $this->dclAccess = ilDataCollectionAccessAdapter::new();
72 $this->dclUi = ilDataCollectionUiAdapter::new();
73
74 if ($this->ctrl->isAsynch() === false) {
75 $this->addJavaScript();
76 }
77
78 $this->dclEndPoint->saveParameterTableId($this);
79 }
80
81 private function setTableId(int $objectOrRefId = 0): void
82 {
83 if ($this->http->wrapper()->query()->has('table_id')) {
84 $this->table_id = $this->http->wrapper()->query()->retrieve('table_id', $this->refinery->kindlyTo()->int());
85 } elseif ($this->http->wrapper()->query()->has('tableview_id')) {
86 $this->table_id = ilDclTableView::find(
87 $this->http->wrapper()->query()->retrieve('tableview_id', $this->refinery->kindlyTo()->int())
88 )->getTableId();
89 } elseif ($objectOrRefId > 0) {
90 $this->table_id = $this->object->getFirstVisibleTableId();
91 }
92 }
93
94 public function getObjectId(): int
95 {
96 return $this->obj_id;
97 }
98
99 private function addJavaScript(): void
100 {
101 $this->dclUi->addJavaScriptFile("Modules/DataCollection/js/datacollection.js");
102 }
103
104 public function getStandardCmd(): string
105 {
106 return "render";
107 }
108
109 public function getType(): string
110 {
111 return "dcl";
112 }
113
117 public function executeCommand(): void
118 {
119 global $DIC;
120
121 $ilNavigationHistory = $DIC['ilNavigationHistory'];
122 $ilHelp = $DIC['ilHelp'];
123 $ilHelp->setScreenIdComponent('bibl');
124
125 // Navigation History
126 $link = $this->ctrl->getLinkTarget($this, "render");
127
128 if ($this->getObject() !== null) {
129 $ilNavigationHistory->addItem($this->object->getRefId(), $link, "dcl");
130 }
131
132 $hasDclGtr = $this->http->wrapper()->query()->has(self::GET_DCL_GTR);
133 // Direct-Link Resource, redirect to viewgui
134 if ($hasDclGtr) {
135 $table_view_id = $this->getTableViewId();
136 $record_id = $this->http->wrapper()->query()->retrieve(
137 self::GET_DCL_GTR,
138 $this->refinery->kindlyTo()->int()
139 );
140
141 $this->ctrl->setParameterByClass(ilDclDetailedViewGUI::class, 'tableview_id', $table_view_id);
142 $this->ctrl->setParameterByClass(ilDclDetailedViewGUI::class, 'record_id', $record_id);
143 $this->ctrl->redirectByClass(ilDclDetailedViewGUI::class, 'renderRecord');
144 }
145
146 $next_class = $this->ctrl->getNextClass($this);
147 $cmd = $this->ctrl->getCmd();
148
149 if (!$this->getCreationMode() && $next_class != "ilinfoscreengui" && $cmd != 'infoScreen' && !$this->checkPermissionBool("read")) {
150 $DIC->ui()->mainTemplate()->loadStandardTemplate();
151 $DIC->ui()->mainTemplate()->setContent("Permission Denied.");
152
153 return;
154 }
155
156 switch ($next_class) {
157 case "ilinfoscreengui":
158 $this->prepareOutput();
159 $this->tabs->activateTab(self::TAB_INFO);
160 $this->infoScreenForward();
161 break;
162
163 case "ilcommonactiondispatchergui":
164 $this->prepareOutput();
166 $gui->enableCommentsSettings(false);
167 $this->ctrl->forwardCommand($gui);
168 break;
169
170 case "ilpermissiongui":
171 $this->prepareOutput();
172 $this->tabs->activateTab(self::TAB_LIST_PERMISSIONS);
173 $perm_gui = new ilPermissionGUI($this);
174 $this->ctrl->forwardCommand($perm_gui);
175 break;
176
177 case "ilobjectcopygui":
178 $cp = new ilObjectCopyGUI($this);
179 $cp->setType("dcl");
180 $DIC->ui()->mainTemplate()->loadStandardTemplate();
181 $this->ctrl->forwardCommand($cp);
182 break;
183
184 case "ildcltablelistgui":
185 $this->prepareOutput();
186 $this->tabs->activateTab(self::TAB_LIST_TABLES);
187 $tablelist_gui = new ilDclTableListGUI($this);
188 $this->ctrl->forwardCommand($tablelist_gui);
189 break;
190
191 case "ildclrecordlistgui":
192 $this->addHeaderAction();
193 $this->prepareOutput();
194 $this->tabs->activateTab(self::TAB_CONTENT);
195 $recordlist_gui = new ilDclRecordListGUI($this, $this->table_id, $this->getTableViewId());
196 $this->ctrl->forwardCommand($recordlist_gui);
197 break;
198
199 case "ildclrecordeditgui":
200 $this->prepareOutput();
201 $this->tabs->activateTab(self::TAB_CONTENT);
202 $recordedit_gui = new ilDclRecordEditGUI($this, $this->table_id, $this->getTableViewId());
203 $this->ctrl->forwardCommand($recordedit_gui);
204 break;
205
206 case "ilobjfilegui":
207 $this->prepareOutput();
208 $this->tabs->activateTab(self::TAB_CONTENT);
209 $file_gui = new ilObjFile($this->getRefId());
210 $this->ctrl->forwardCommand($file_gui);
211 break;
212
213 case "ilratinggui":
214 $rgui = new ilRatingGUI();
215
216 $record_id = $this->http->wrapper()->query()->retrieve('record_id', $this->refinery->kindlyTo()->int());
217 $field_id = $this->http->wrapper()->query()->retrieve('field_id', $this->refinery->kindlyTo()->int());
218
219 $rgui->setObject($record_id, "dcl_record", $field_id, "dcl_field");
220 $rgui->executeCommand();
221 $this->listRecords();
222 break;
223
224 case "ildcldetailedviewgui":
225 $this->prepareOutput();
226 $recordview_gui = new ilDclDetailedViewGUI($this, $this->getTableViewId());
227 $this->ctrl->forwardCommand($recordview_gui);
228 $this->tabs->clearTargets();
229 $this->tabs->setBackTarget(
230 $this->lng->txt("back"),
231 $this->ctrl->getLinkTargetByClass(
232 ilDclRecordListGUI::class,
234 )
235 );
236 break;
237
238 case 'ilnotegui':
239 $this->prepareOutput();
240 $recordviewGui = new ilDclDetailedViewGUI($this, $this->getTableViewId());
241 $this->ctrl->forwardCommand($recordviewGui);
242 $this->tabs->clearTargets();
243 $this->tabs->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this, ""));
244 break;
245 case "ildclexportgui":
246 $this->handleExport();
247 break;
248
249 case strtolower(ilDclPropertyFormGUI::class):
250 $recordedit_gui = new ilDclRecordEditGUI($this, $this->table_id, $this->getTableViewId());
251 $recordedit_gui->getRecord();
252 $recordedit_gui->initForm();
253 $form = $recordedit_gui->getForm();
254 $this->ctrl->forwardCommand($form);
255 break;
256
257 default:
258 switch ($cmd) {
259 case 'edit': // this is necessary because ilObjectGUI only calls its own editObject (why??)
260 $this->prepareOutput();
261 $this->editObject();
262 break;
263 case 'export':
264 $this->handleExport(true);
265 break;
266 default:
267 parent::executeCommand();
268 }
269 }
270 }
271
272 protected function handleExport(bool $do_default = false)
273 {
274 $this->prepareOutput();
275 $this->tabs->setTabActive(self::TAB_EXPORT);
276 $exp_gui = new ilDclExportGUI($this);
277 $exporter = new ilDclContentExporter($this->object->getRefId(), $this->table_id);
278 $exp_gui->addFormat("xlsx", $this->lng->txt('dlc_xls_async_export'), $exporter, 'exportAsync');
279 $exp_gui->addFormat("xml");
280 if ($do_default) {
281 $exp_gui->listExportFiles();
282 } else {
283 $this->ctrl->forwardCommand($exp_gui);
284 }
285 }
286
287 protected function getTableViewId(): int
288 {
289 $tableview_id = null;
290 if ($this->http->wrapper()->query()->has('tableview_id')) {
291 $tableview_id = $this->http->wrapper()->query()->retrieve(
292 'tableview_id',
293 $this->refinery->kindlyTo()->int()
294 );
295 }
296 if ($this->http->wrapper()->post()->has('tableview_id')) {
297 $tableview_id = $this->http->wrapper()->post()->retrieve(
298 'tableview_id',
299 $this->refinery->kindlyTo()->int()
300 );
301 }
302 if (!$tableview_id) {
303 $table_obj = ilDclCache::getTableCache($this->table_id);
304 $tableview_id = $table_obj->getFirstTableViewId($this->getRefId());
305 }
306 return $tableview_id;
307 }
308
314 public function infoScreen(): void
315 {
316 $this->ctrl->setCmd("showSummary");
317 $this->ctrl->setCmdClass("ilinfoscreengui");
318 $this->infoScreenForward();
319 }
320
324 public function render(): void
325 {
326 if ($this->http->wrapper()->query()->has('tableview_id')) {
327 $tableview_id = $this->http->wrapper()->query()->retrieve(
328 'tableview_id',
329 $this->refinery->kindlyTo()->int()
330 );
331 $this->ctrl->setParameterByClass('ilDclRecordListGUI', 'tableview_id', $tableview_id);
332 }
333 $this->ctrl->redirectByClass("ildclrecordlistgui", "show");
334 }
335
339 public function infoScreenForward(): void
340 {
341 $this->tabs->activateTab(self::TAB_INFO);
342
343 if (!$this->checkPermissionBool('visible')) {
344 $this->checkPermission('read');
345 }
346
347 $info = new ilInfoScreenGUI($this);
348 $info->enablePrivateNotes();
349 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
350
351 $this->ctrl->forwardCommand($info);
352 }
353
357 protected function addLocatorItems(): void
358 {
359 if (is_object($this->object) === true) {
360 $this->dclUi->addLocatorItem(
361 $this->object->getTitle(),
362 $this->ctrl->getLinkTarget($this, ""),
363 $this->object->getRefId()
364 );
365 }
366 }
367
368 public static function _goto(string $a_target): void
369 {
370 global $DIC;
371 $lng = $DIC->language();
372
374 $dclUi = $dclConfig->getDataCollectionUi();
375
376 $ilCtrl = $DIC->ctrl();
377 $dclAccess = $dclConfig->getDataCollectionAccess();
378
379 $targetParts = explode("_", $a_target);
380 if (count($targetParts) === 1) {
381 [$refId] = $targetParts;
382 } elseif (count($targetParts) === 2) {
383 [$refId, $viewId] = $targetParts;
384 } else {
385 [$refId, $viewId, $recordId] = $targetParts;
386 }
387
388 //redirect if no permission given
391 sprintf(
392 $lng->txt("msg_no_perm_read_item"),
394 )
395 );
397 }
398
399 //load record list
400 if ($dclAccess->hasReadPermission($refId) === true) {
401 $ilCtrl->setParameterByClass("ilRepositoryGUI", self::GET_REF_ID, $refId);
402 if (isset($viewId)) {
403 $ilCtrl->setParameterByClass("ilRepositoryGUI", self::GET_VIEW_ID, $viewId);
404 }
405 if (isset($recordId)) {
406 $ilCtrl->setParameterByClass("ilRepositoryGUI", self::GET_DCL_GTR, $recordId);
407 }
408 $ilCtrl->redirectByClass("ilRepositoryGUI", "listRecords");
409 }
410
411 //redirect to info screen
412 if ($dclAccess->hasVisiblePermission($refId) === true) {
413 ilObjectGUI::_gotoRepositoryNode($a_target, "infoScreen");
414 }
415 }
416
417 protected function afterSave(ilObject $new_object): void
418 {
419 $this->dclUi->displaySuccessMessage($this->lng->txt("object_added"));
420
421 $listTablesLink = $this->dclEndPoint->getListTablesLink();
422 $this->dclEndPoint->redirect($listTablesLink);
423 }
424
430 protected function setTabs(): void
431 {
432 $refId = $this->object->getRefId();
433
434 // read permission
435 if ($this->dclAccess->hasReadPermission($refId) === true) {
436 // list records
437 $this->addTab(self::TAB_CONTENT, $this->dclEndPoint->getListRecordsLink());
438 }
439
440 // visible permission
441 if ($this->dclAccess->hasVisibleOrReadPermission($refId) === true) {
442 // info screen
443 $this->addTab(self::TAB_INFO, $this->dclEndPoint->getInfoScreenLink());
444 }
445
446 // write permission
447 if ($this->dclAccess->hasWritePermission($refId) === true) {
448 // settings
449 $this->addTab(self::TAB_EDIT_DCL, $this->dclEndPoint->getEditDclLink($this));
450 // list tables
451 $this->addTab(self::TAB_LIST_TABLES, $this->dclEndPoint->getListTablesLink());
452 // export
453 $this->addTab(self::TAB_EXPORT, $this->dclEndPoint->getDataCollectionExportLink());
454 }
455
456 // edit permissions
457 if ($this->dclAccess->hasEditPermissionPermission($refId) === true) {
458 //list permissions
459 $this->addTab(self::TAB_LIST_PERMISSIONS, $this->dclEndPoint->getListPermissionsLink());
460 }
461 }
462
463 private function addTab(string $langKey, string $link): void
464 {
465 $this->tabs->addTab($langKey, $this->lng->txt($langKey), $link);
466 }
467
472 public function editObject(): void
473 {
474 $dataCollectionTemplate = $this->tpl;
475
476 $refId = $this->object->getRefId();
477 if ($this->dclAccess->hasWritePermission($refId) === false) {
478 $this->dclUi->displayErrorMessage(
479 $this->lng->txt("msg_no_perm_write")
480 );
481 }
482
483 $this->tabs->activateTab(self::TAB_EDIT_DCL);
484
485 $form = $this->initEditForm();
486 $values = $this->getEditFormValues();
487 if ($values) {
488 $form->setValuesByArray($values, true);
489 }
490
491 $this->addExternalEditFormCustom($form);
492
493 $dataCollectionTemplate->setContent($form->getHTML());
494 }
495
496 protected function initEditForm(): ilPropertyFormGUI
497 {
498 $this->tabs->activateTab(self::TAB_EDIT_DCL);
499
500 $form = new ilPropertyFormGUI();
501 $form->setFormAction($this->ctrl->getFormAction($this, "update"));
502 $form->setTitle($this->lng->txt($this->object->getType() . "_edit"));
503
504 // title
505 $ti = new ilTextInputGUI($this->lng->txt("title"), "title");
506 $ti->setSize(min(40, ilObject::TITLE_LENGTH));
507 $ti->setMaxLength(ilObject::TITLE_LENGTH);
508 $ti->setRequired(true);
509 $form->addItem($ti);
510
511 // description
512 $ta = new ilTextAreaInputGUI($this->lng->txt("description"), "desc");
513 $ta->setCols(40);
514 $ta->setRows(2);
515 $form->addItem($ta);
516
517 // is_online
518 $cb = new ilCheckboxInputGUI($this->lng->txt("online"), "is_online");
519 $cb->setInfo($this->lng->txt("dcl_online_info"));
520 $form->addItem($cb);
521
522 // Notification
523 $cb = new ilCheckboxInputGUI($this->lng->txt("dcl_activate_notification"), "notification");
524 $cb->setInfo($this->lng->txt("dcl_notification_info"));
525 $form->addItem($cb);
526
527 // tile img upload
528 $section_appearance = new ilFormSectionHeaderGUI();
529 $section_appearance->setTitle($this->lng->txt('cont_presentation'));
530 $form->addItem($section_appearance);
531 $form = $this->object_service->commonSettings()->legacyForm($form, $this->object)->addTileImage();
532
533 $form->addCommandButton("update", $this->lng->txt("save"));
534
535 return $form;
536 }
537
538 final public function listRecords(): void
539 {
540 $listRecordsLink = $this->dclEndPoint->getListRecordsLink($this->getTableViewId());
541 $this->dclEndPoint->redirect($listRecordsLink);
542 }
543
545 {
546 return new ilObjDataCollection($this->ref_id, true);
547 }
548
549 protected function getEditFormCustomValues(array &$a_values): void
550 {
551 $a_values["is_online"] = $this->object->getOnline();
552 $a_values["rating"] = $this->object->getRating();
553 $a_values["public_notes"] = $this->object->getPublicNotes();
554 $a_values["approval"] = $this->object->getApproval();
555 $a_values["notification"] = $this->object->getNotification();
556 }
557
558 protected function updateCustom(ilPropertyFormGUI $form): void
559 {
560 $this->object->setOnline($form->getInput("is_online"));
561 $this->object->setRating($form->getInput("rating"));
562 $this->object->setPublicNotes($form->getInput("public_notes"));
563 $this->object->setApproval($form->getInput("approval"));
564 $this->object->setNotification($form->getInput("notification"));
565
566 $this->object_service->commonSettings()->legacyForm($form, $this->object)->saveTileImage();
567
568 $this->emptyInfo();
569 }
570
571 private function emptyInfo(): void
572 {
573 global $DIC;
574 $lng = $DIC['lng'];
575 $table = ilDclCache::getTableCache($this->object->getFirstVisibleTableId());
576 $tables = $this->object->getTables();
577 if (count($tables) === 1 && count($table->getRecordFields()) === 0 && count($table->getRecords()) === 0
578 && $this->object->getOnline()
579 ) {
580 $this->tpl->setOnScreenMessage('info', $lng->txt("dcl_no_content_warning"), true);
581 }
582 }
583
584 final public function toggleNotification(): void
585 {
586 $ntf = $this->http->wrapper()->query()->retrieve('ntf', $this->refinery->kindlyTo()->int());
587 switch ($ntf) {
588 case 1:
591 $this->user->getId(),
592 $this->obj_id,
593 false
594 );
595 break;
596 case 2:
599 $this->user->getId(),
600 $this->obj_id
601 );
602 break;
603 }
604 $this->ctrl->redirectByClass("ildclrecordlistgui", "show");
605 }
606
607 protected function addHeaderAction(): void
608 {
609 ilObjectListGUI::prepareJSLinks(
610 $this->ctrl->getLinkTarget($this, "redrawHeaderAction", "", true),
611 "",
612 $this->ctrl->getLinkTargetByClass(array("ilcommonactiondispatchergui", "iltagginggui"), "", "", true)
613 );
614
615 $dispatcher = new ilCommonActionDispatcherGUI(ilCommonActionDispatcherGUI::TYPE_REPOSITORY, $this->access, "dcl", $this->ref_id, $this->obj_id);
616
617 $lg = $dispatcher->initHeaderAction();
618
619 // notification
620 if ($this->user->getId() != ANONYMOUS_USER_ID and $this->object->getNotification() == 1) {
622 //Command Activate Notification
623 $this->ctrl->setParameter($this, "ntf", 1);
624 $lg->addCustomCommand($this->ctrl->getLinkTarget($this, "toggleNotification"), "dcl_notification_deactivate_dcl");
625
626 $lg->addHeaderIcon("not_icon", ilUtil::getImagePath("notification_on.svg"), $this->lng->txt("dcl_notification_activated"));
627 } else {
628 //Command Deactivate Notification
629 $this->ctrl->setParameter($this, "ntf", 2);
630 $lg->addCustomCommand($this->ctrl->getLinkTarget($this, "toggleNotification"), "dcl_notification_activate_dcl");
631
632 $lg->addHeaderIcon("not_icon", ilUtil::getImagePath("notification_off.svg"), $this->lng->txt("dcl_notification_deactivated"));
633 }
634 $this->ctrl->setParameter($this, "ntf", "");
635 }
636
637 $this->tpl->setHeaderActionMenu($lg->getHeaderAction());
638 }
639}
Class Services.
Definition: Services.php:38
This class represents a checkbox property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilCtrl provides processing control methods.
static getTableCache(int $table_id=null)
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 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 file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilInfoScreenGUI.
language handling
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...
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 file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
render()
show Content; redirect to ilDclRecordListGUI::listRecords
infoScreenForward()
show information screen
getEditFormCustomValues(array &$a_values)
Add values to custom edit fields.
ilDataCollectionAccessPort $dclAccess
setTabs()
setTabs create tabs (repository/workspace switch) this had to be moved here because of the context-sp...
editObject()
edit object @access public
addTab(string $langKey, string $link)
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
updateCustom(ilPropertyFormGUI $form)
Insert custom update form values into object.
addHeaderAction()
Add header action menu.
handleExport(bool $do_default=false)
getType()
Functions that must be overwritten.
ilDataCollectionEndpointPort $dclEndPoint
infoScreen()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
afterSave(ilObject $new_object)
Post (successful) object creation hook.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjFile.
New implementation of ilObjectGUI.
ilGlobalTemplateInterface $tpl
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
prepareOutput(bool $show_sub_objects=true)
checkPermission(string $perm, string $cmd="", string $type="", int $ref_id=null)
GUI class for the workflow of copying objects.
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
addExternalEditFormCustom(ilPropertyFormGUI $form)
static _gotoRepositoryNode(int $ref_id, string $cmd="")
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const TITLE_LENGTH
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
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-...
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 text area property in a property form.
This class represents a text property in a property form.
static getImagePath(string $img, 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
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
hasVisiblePermission(int $refId)
hasVisibleOrReadPermission(int $refId)
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...
displayFailureMessage(string $message)
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$refId
Definition: xapitoken.php:58