ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilObject2GUI.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
24 
43 abstract class ilObject2GUI extends ilObjectGUI
44 {
45  public const OBJECT_ID = 0;
46  public const REPOSITORY_NODE_ID = 1;
47  public const WORKSPACE_NODE_ID = 2;
48  public const REPOSITORY_OBJECT_ID = 3;
49  public const WORKSPACE_OBJECT_ID = 4;
50  public const PORTFOLIO_OBJECT_ID = 5;
51 
54  protected ilCtrl $ctrl;
55  protected ilLanguage $lng;
56  protected ilTabsGUI $tabs_gui;
60  protected ilObjUser $user;
65  protected Factory $refinery;
69 
70  protected int $request_ref_id;
71  protected int $id_type;
72  protected ?int $parent_id;
73  protected string $type;
74  protected string $html;
75 
76  protected int $object_id;
77  protected ?int $node_id = null;
78  protected array $creation_forms = [];
82  protected $access_handler;
84 
85  public function __construct(int $id = 0, int $id_type = self::REPOSITORY_NODE_ID, int $parent_node_id = 0)
86  {
87  global $DIC;
88 
89  $this->obj_definition = $DIC["objDefinition"];
90  $this->tpl = $DIC["tpl"];
91  $this->ctrl = $DIC["ilCtrl"];
92  $this->lng = $DIC["lng"];
93  $this->tabs_gui = $DIC["ilTabs"];
94  $this->object_service = $DIC->object();
95  $this->favourites = new ilFavouritesManager();
96  $this->error = $DIC['ilErr'];
97  $this->locator = $DIC["ilLocator"];
98  $this->user = $DIC->user();
99  $this->access = $DIC->access();
100  $this->toolbar = $DIC->toolbar();
101  $this->post_wrapper = $DIC->http()->wrapper()->post();
102  $this->request_wrapper = $DIC->http()->wrapper()->query();
103  $this->refinery = $DIC->refinery();
104  $this->retriever = new ilObjectRequestRetriever($DIC->http()->wrapper(), $this->refinery);
105  $this->rbac_admin = $DIC->rbac()->admin();
106  $this->rbac_system = $DIC->rbac()->system();
107  $this->rbac_review = $DIC->rbac()->review();
108 
109  $tree = $DIC["tree"];
110 
111  $this->requested_ref_id = 0;
112  if ($this->request_wrapper->has("ref_id")) {
113  $this->requested_ref_id = $this->request_wrapper->retrieve("ref_id", $this->refinery->kindlyTo()->int());
114  }
115  $this->id_type = $id_type;
116  $this->parent_id = $parent_node_id;
117  $this->type = $this->getType();
118  $this->html = "";
119  $this->notes_service = $DIC->notes();
120 
121  $this->requested_new_type = '';
122  if ($this->request_wrapper->has("new_type")) {
123  $this->requested_new_type = $this->request_wrapper->retrieve(
124  "new_type",
125  $this->refinery->kindlyTo()->string()
126  );
127  } elseif ($this->post_wrapper->has("new_type")) {
128  $this->requested_new_type = $this->post_wrapper->retrieve(
129  "new_type",
130  $this->refinery->kindlyTo()->string()
131  );
132  }
133 
134  $params = [];
135  switch ($this->id_type) {
136  case self::REPOSITORY_NODE_ID:
137  $this->node_id = $id;
138  $this->object_id = ilObject::_lookupObjectId($this->node_id);
139  $this->tree = $tree;
140  $this->access_handler = $this->access;
141  $this->call_by_reference = true; // needed for prepareOutput()
142  $params[] = "ref_id";
143  break;
144 
145  case self::REPOSITORY_OBJECT_ID:
146  $this->object_id = $id;
147  $this->tree = $tree;
148  $this->access_handler = $this->access;
149  $params[] = "obj_id"; // ???
150  break;
151 
152  case self::WORKSPACE_NODE_ID:
153  $ilUser = $DIC["ilUser"];
154  $this->node_id = $id;
155  $this->tree = new ilWorkspaceTree($ilUser->getId());
156  $this->object_id = $this->tree->lookupObjectId($this->node_id);
157  $this->access_handler = new ilWorkspaceAccessHandler($this->tree);
158  $params[] = "wsp_id";
159  break;
160 
161  case self::WORKSPACE_OBJECT_ID:
162  $ilUser = $DIC["ilUser"];
163  $this->object_id = $id;
164  $this->tree = new ilWorkspaceTree($ilUser->getId());
165  $this->access_handler = new ilWorkspaceAccessHandler($this->tree);
166  $params[] = "obj_id"; // ???
167  break;
168 
169  case self::PORTFOLIO_OBJECT_ID:
170  $this->object_id = $id;
171  $this->access_handler = new ilPortfolioAccessHandler();
172  $params[] = "prt_id";
173  break;
174 
175  case self::OBJECT_ID:
176  $this->object_id = $id;
177  $this->access_handler = new ilDummyAccessHandler();
178  $params[] = "obj_id";
179  break;
180  }
181  $this->ctrl->saveParameter($this, $params);
182 
183 
184 
185  // old stuff for legacy code (obsolete?)
186  if (!$this->object_id) {
187  $this->creation_mode = true;
188  }
189  if ($this->node_id) {
190  // add parent node id if missing
191  if (!$this->parent_id && $this->tree) {
192  $this->parent_id = $this->tree->getParentId($this->node_id);
193  }
194  }
195  $this->ref_id = $this->node_id ?? 0;
196  $this->obj_id = $this->object_id;
197 
198  $this->assignObject();
199 
200  // set context
201  if (is_object($this->object)) {
202  $this->ctrl->setContextObject($this->object->getId(), $this->object->getType());
203  }
204 
205  $this->afterConstructor();
206  }
207 
211  protected function afterConstructor(): void
212  {
213  }
214 
218  public function executeCommand(): void
219  {
220  $next_class = $this->ctrl->getNextClass($this);
221  $cmd = $this->ctrl->getCmd();
222 
223  $this->prepareOutput();
224 
225  switch ($next_class) {
226  case "ilworkspaceaccessgui":
227  if ($this->node_id) {
228  $this->tabs_gui->activateTab("id_permissions");
229  $wspacc = new ilWorkspaceAccessGUI($this->node_id, $this->getAccessHandler());
230  $this->ctrl->forwardCommand($wspacc);
231  } else {
232  if (!$cmd) {
233  $cmd = "render";
234  }
235  $this->$cmd();
236  }
237  break;
238 
239  default:
240  if (!$cmd) {
241  $cmd = "render";
242  }
243  $this->$cmd();
244  }
245  }
246 
247  public function getIdType(): int
248  {
249  return $this->id_type;
250  }
251 
255  final protected function assignObject(): void
256  {
257  if ($this->object_id != 0) {
258  switch ($this->id_type) {
259  case self::OBJECT_ID:
260  case self::REPOSITORY_OBJECT_ID:
261  case self::WORKSPACE_OBJECT_ID:
262  case self::PORTFOLIO_OBJECT_ID:
263  $this->object = ilObjectFactory::getInstanceByObjId($this->object_id);
264  break;
265 
266  case self::REPOSITORY_NODE_ID:
267  $this->object = ilObjectFactory::getInstanceByRefId($this->node_id);
268  break;
269 
270  case self::WORKSPACE_NODE_ID:
271  // to be discussed
272  $this->object = ilObjectFactory::getInstanceByObjId($this->object_id);
273  break;
274  }
275  }
276  }
277 
281  protected function getAccessHandler()
282  {
283  return $this->access_handler;
284  }
285 
289  protected function setLocator(): void
290  {
291  if ($this->omit_locator) {
292  return;
293  }
294 
295  switch ($this->id_type) {
296  case self::REPOSITORY_NODE_ID:
297  $ref_id = $this->node_id ?: $this->parent_id;
298  $this->locator->addRepositoryItems($ref_id);
299 
300  // not so nice workaround: todo: handle locator as tabs in ilTemplate
301  if ($this->admin_mode == self::ADMIN_MODE_NONE &&
302  strtolower($this->ctrl->getCmdClass()) == "ilobjrolegui") {
303  $this->ctrl->setParameterByClass(
304  "ilobjrolegui",
305  "rolf_ref_id",
306  $this->request_wrapper->has("rolf_ref_id")
307  ? $this->request_wrapper->retrieve("rolf_ref_id", $this->refinery->kindlyTo()->string())
308  : null
309  );
310  $this->ctrl->setParameterByClass(
311  "ilobjrolegui",
312  "obj_id",
313  $this->request_wrapper->retrieve("obj_id", $this->refinery->kindlyTo()->string())
314  );
315  $this->locator->addItem(
316  $this->lng->txt("role"),
317  $this->ctrl->getLinkTargetByClass(["ilpermissiongui",
318  "ilobjrolegui"], "perm")
319  );
320  }
321 
322  // in workspace this is done in ilPersonalWorkspaceGUI
323  if ($this->object_id) {
324  $this->addLocatorItems();
325  }
326  $this->tpl->setLocator();
327 
328  break;
329 
330  case self::WORKSPACE_NODE_ID:
331  // :TODO:
332  break;
333  }
334  }
335 
339  public function delete(): void
340  {
341  switch ($this->id_type) {
342  case self::REPOSITORY_NODE_ID:
343  case self::REPOSITORY_OBJECT_ID:
344  parent::deleteObject();
345 
346  // no break
347  case self::WORKSPACE_NODE_ID:
348  case self::WORKSPACE_OBJECT_ID:
349  $this->deleteConfirmation();
350 
351  // no break
352  case self::OBJECT_ID:
353  case self::PORTFOLIO_OBJECT_ID:
354  // :TODO: should this ever occur?
355  break;
356  }
357  }
358 
362  public function confirmedDelete(): void
363  {
364  switch ($this->id_type) {
365  case self::REPOSITORY_NODE_ID:
366  case self::REPOSITORY_OBJECT_ID:
367  parent::confirmedDeleteObject();
368 
369  // no break
370  case self::WORKSPACE_NODE_ID:
371  case self::WORKSPACE_OBJECT_ID:
372  $this->deleteConfirmedObjects();
373 
374  // no break
375  case self::OBJECT_ID:
376  case self::PORTFOLIO_OBJECT_ID:
377  // :TODO: should this ever occur?
378  break;
379  }
380  }
381 
386  protected function deleteConfirmedObjects(): void
387  {
388  if (!$this->post_wrapper->has("id")) {
389  $this->tpl->setOnScreenMessage("failure", $this->lng->txt("no_checkbox"), true);
390  $this->ctrl->redirect($this, "");
391  return;
392  }
393 
394  $ids = $this->post_wrapper->retrieve(
395  "id",
396  $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->int())
397  );
398 
399  if (count($ids) == 0) {
400  $this->tpl->setOnScreenMessage("failure", $this->lng->txt("no_checkbox"), true);
401  $this->ctrl->redirect($this, "");
402  return;
403  }
404 
405  // #18797 - because of parent/child relations gather all nodes first
406  $del_nodes = [];
407  foreach ($ids as $node_id) {
408  $del_nodes[$node_id] = $this->tree->getNodeData($node_id);
409  }
410 
411  foreach ($del_nodes as $node_id => $node) {
412  $this->tree->deleteReference($node_id);
413  if ($this->tree->isInTree($node_id)) {
414  $this->tree->deleteTree($node);
415  }
416 
417  $this->getAccessHandler()->removePermission($node_id);
418 
419  $object = ilObjectFactory::getInstanceByObjId((int) $node["obj_id"], false);
420  if ($object) {
421  $object->delete();
422  }
423  }
424 
425  $this->tpl->setOnScreenMessage("success", $this->lng->txt("msg_removed"), true);
426  $this->ctrl->redirect($this, "");
427  }
428 
429  public function getHTML(): string
430  {
431  return parent::getHTML();
432  }
433 
437  final public function withReferences(): bool
438  {
439  return parent::withReferences();
440  }
441  final public function setCreationMode(bool $mode = true): void
442  {
443  parent::setCreationMode($mode);
444  }
445  final public function getCreationMode(): bool
446  {
447  return parent::getCreationMode();
448  }
449  final public function prepareOutput(bool $show_sub_objects = true): bool
450  {
451  return parent::prepareOutput($show_sub_objects);
452  }
453  protected function setTitleAndDescription(): void
454  {
455  parent::setTitleAndDescription();
456  }
457  final protected function omitLocator(bool $omit = true): void
458  {
459  parent::omitLocator($omit);
460  }
461  final protected function getTargetFrame(string $cmd, string $target_frame = ""): string
462  {
463  return parent::getTargetFrame($cmd, $target_frame);
464  }
465  final protected function setTargetFrame(string $cmd, string $target_frame): void
466  {
467  parent::setTargetFrame($cmd, $target_frame);
468  }
469  final public function isVisible(int $ref_id, string $type): bool
470  {
471  return parent::isVisible($ref_id, $type);
472  }
473  final protected function getCenterColumnHTML(): string
474  {
475  return parent::getCenterColumnHTML();
476  }
477  final protected function getRightColumnHTML(): string
478  {
479  return parent::getRightColumnHTML();
480  }
481  final public function setColumnSettings(ilColumnGUI $column_gui): void
482  {
483  parent::setColumnSettings($column_gui);
484  }
485  final protected function checkPermission(
486  string $perm,
487  string $cmd = "",
488  string $type = "",
489  int $ref_id = null
490  ): void {
491  parent::checkPermission($perm, $cmd, $type, $ref_id);
492  }
493  final protected function showPossibleSubObjects(): void
494  {
495  parent::showPossibleSubObjects();
496  }
497 
498  final protected function redirectToRefId(int $ref_id, string $cmd = ""): void
499  {
500  parent::redirectToRefId($ref_id, $cmd);
501  }
502 
503  // private function setAdminTabs() { return parent::setAdminTabs(); }
504  // final public function getAdminTabs() { return parent::getAdminTabs(); }
505  final protected function addAdminLocatorItems(bool $do_not_add_object = false): void
506  {
507  parent::addAdminLocatorItems($do_not_add_object);
508  }
509 
513  public function view(): void
514  {
515  switch ($this->id_type) {
516  case self::REPOSITORY_NODE_ID:
517  case self::REPOSITORY_OBJECT_ID:
518  parent::viewObject();
519  break;
520 
521  case self::WORKSPACE_NODE_ID:
522  case self::WORKSPACE_OBJECT_ID:
523  $this->render();
524 
525  // no break
526  case self::OBJECT_ID:
527  case self::PORTFOLIO_OBJECT_ID:
528  // :TODO: should this ever occur? do nothing or edit() ?!
529  break;
530  }
531  }
532 
538  protected function setTabs(): void
539  {
540  switch ($this->id_type) {
541  case self::REPOSITORY_NODE_ID:
542  case self::REPOSITORY_OBJECT_ID:
543  if ($this->checkPermissionBool("edit_permission")) {
544  $this->tabs_gui->addTab(
545  "id_permissions",
546  $this->lng->txt("perm_settings"),
547  $this->ctrl->getLinkTargetByClass([get_class($this), "ilpermissiongui"], "perm")
548  );
549  }
550  break;
551 
552  case self::WORKSPACE_NODE_ID:
553  case self::WORKSPACE_OBJECT_ID:
554  // only files and blogs can be shared for now
555  if (
556  $this->checkPermissionBool("edit_permission") &&
557  in_array($this->type, ["file", "blog"]) &&
559  ) {
560  $this->tabs_gui->addTab(
561  "id_permissions",
562  $this->lng->txt("wsp_permissions"),
563  $this->ctrl->getLinkTargetByClass([get_class($this), "ilworkspaceaccessgui"], "share")
564  );
565  }
566  break;
567  }
568  }
569 
573  // private function setSubObjects($a_sub_objects = "") { die("ilObject2GUI::setSubObjects() is deprecated."); }
574  // final public function getFormAction($a_cmd, $a_formaction = "") { die("ilObject2GUI::getFormAction() is deprecated."); }
575  // final protected function setFormAction($a_cmd, $a_formaction) { die("ilObject2GUI::setFormAction() is deprecated."); }
576  final protected function getReturnLocation(string $cmd, string $location = ""): string
577  {
578  die("ilObject2GUI::getReturnLocation() is deprecated.");
579  }
580  final protected function setReturnLocation(string $cmd, string $location): void
581  {
582  die("ilObject2GUI::setReturnLocation() is deprecated.");
583  }
584  final protected function showActions(): void
585  {
586  die("ilObject2GUI::showActions() is deprecated.");
587  }
588  final protected function getTabs(): void
589  {
590  die("ilObject2GUI::getTabs() is deprecated.");
591  }
592 
596  protected function addLocatorItems(): void
597  {
598  }
599 
603  abstract public function getType(): string;
604 
608  public function create(): void
609  {
610  parent::createObject();
611  }
612  public function save(): void
613  {
614  parent::saveObject();
615  }
616  public function edit(): void
617  {
618  parent::editObject();
619  }
620  public function update(): void
621  {
622  parent::updateObject();
623  }
624  public function cancel(): void
625  {
626  parent::cancelObject();
627  }
628 
634  protected function initCreationForms(string $new_type): array
635  {
636  $forms = parent::initCreationForms($new_type);
637 
638  // cloning doesn't work in workspace yet
639  if ($this->id_type == self::WORKSPACE_NODE_ID) {
640  unset($forms[self::CFORM_CLONE]);
641  }
642 
643  return $forms;
644  }
645 
646  public function importFile(): void
647  {
648  parent::importFileObject($this->parent_id);
649  }
650 
654  public function putObjectInTree(ilObject $obj, int $parent_node_id = null): void
655  {
656  $this->object_id = $obj->getId();
657 
658  if (!$parent_node_id) {
659  $parent_node_id = $this->parent_id;
660  }
661 
662  // add new object to custom parent container
663  if ($this->retriever->has('crtptrefid')) {
664  $parent_node_id = $this->retriever->getMaybeInt('crtptrefid') ?? 0;
665  }
666 
667  switch ($this->id_type) {
668  case self::REPOSITORY_NODE_ID:
669  case self::REPOSITORY_OBJECT_ID:
670  if (!$this->node_id) {
671  $obj->createReference();
672  $this->node_id = $obj->getRefId();
673  }
674  $obj->putInTree($parent_node_id);
675  $obj->setPermissions($parent_node_id);
676 
677  // rbac log
678  $rbac_log_roles = $this->rbac_review->getParentRoleIds($this->node_id, false);
679  $rbac_log = ilRbacLog::gatherFaPa($this->node_id, array_keys($rbac_log_roles), true);
680  ilRbacLog::add(ilRbacLog::CREATE_OBJECT, $this->node_id, $rbac_log);
681 
682  $this->ctrl->setParameter($this, "ref_id", $this->node_id);
683  break;
684 
685  case self::WORKSPACE_NODE_ID:
686  case self::WORKSPACE_OBJECT_ID:
687  if (!$this->node_id) {
688  $this->node_id = $this->tree->insertObject($parent_node_id, $this->object_id);
689  }
690  $this->getAccessHandler()->setPermissions($parent_node_id, $this->node_id);
691 
692  $this->ctrl->setParameter($this, "wsp_id", $this->node_id);
693  break;
694 
695  case self::OBJECT_ID:
696  case self::PORTFOLIO_OBJECT_ID:
697  // do nothing
698  break;
699  }
700 
701  // BEGIN ChangeEvent: Record save object.
702  ilChangeEvent::_recordWriteEvent($this->object_id, $this->user->getId(), 'create');
703  // END ChangeEvent: Record save object.
704 
705  // use forced callback after object creation
706  self::handleAfterSaveCallback($obj, $this->retriever->getMaybeInt('crtcb'));
707  }
708 
712  public static function handleAfterSaveCallback(ilObject $obj, ?int $callback_ref_id)
713  {
714  global $DIC;
715  $objDefinition = $DIC["objDefinition"];
716 
717  $callback_ref_id = (int) $callback_ref_id;
718  if ($callback_ref_id) {
719  $callback_type = ilObject::_lookupType($callback_ref_id, true);
720  $class_name = "ilObj" . $objDefinition->getClassName($callback_type) . "GUI";
721  if (strtolower($class_name) == "ilobjitemgroupgui") {
722  $callback_obj = new $class_name($callback_ref_id);
723  } else {
724  $callback_obj = new $class_name(null, $callback_ref_id, true, false);
725  }
726  $callback_obj->afterSaveCallback($obj);
727  }
728  }
729 
730  protected function checkPermissionBool(
731  string $perm,
732  string $cmd = "",
733  string $type = "",
734  ?int $node_id = null
735  ): bool {
736  if ($perm == "create") {
737  if (!$node_id) {
738  $node_id = $this->parent_id;
739  }
740  if ($node_id) {
741  return $this->getAccessHandler()->checkAccess($perm . "_" . $type, $cmd, $node_id);
742  }
743  } else {
744  if (!$node_id) {
745  $node_id = $this->node_id;
746  }
747  if ($node_id) {
748  return $this->getAccessHandler()->checkAccess($perm, $cmd, $node_id);
749  }
750  }
751 
752  // if we do not have a node id, check if current user is owner
753  if ($this->obj_id && $this->object->getOwner() == $this->user->getId()) {
754  return true;
755  }
756  return false;
757  }
758 
762  protected function initHeaderAction(?string $sub_type = null, ?int $sub_id = null): ?ilObjectListGUI
763  {
764  if ($this->id_type == self::WORKSPACE_NODE_ID) {
765  if (!$this->creation_mode && $this->object_id) {
766  $dispatcher = new ilCommonActionDispatcherGUI(
768  $this->getAccessHandler(),
769  $this->getType(),
770  $this->node_id,
771  $this->object_id
772  );
773 
774  $dispatcher->setSubObject($sub_type, $sub_id);
775 
777  $this->ctrl->getLinkTarget($this, "redrawHeaderAction", "", true),
778  "",
779  $this->ctrl->getLinkTargetByClass(["ilcommonactiondispatchergui", "iltagginggui"], "")
780  );
781 
782  $lg = $dispatcher->initHeaderAction();
783 
784  if (is_object($lg)) {
785  // to enable add to desktop / remove from desktop
786  if ($this instanceof ilDesktopItemHandling) {
787  $lg->setContainerObject($this);
788  }
789 
790  // for activation checks see ilObjectGUI
791  // $lg->enableComments(true);
792  $lg->enableNotes(true);
793  // $lg->enableTags(true);
794  }
795 
796  return $lg;
797  }
798  }
799 
800  return parent::initHeaderAction($sub_type, $sub_id);
801  }
802 
806  protected function redrawHeaderAction(): void
807  {
808  parent::redrawHeaderActionObject();
809  }
810 }
getReturnLocation(string $cmd, string $location="")
Deprecated functions.
setLocator()
set Locator
checkPermission(string $perm, string $cmd="", string $type="", int $ref_id=null)
delete()
delete object or referenced object (in the case of a referenced object, object data is only deleted i...
ilRbacReview $rbac_review
static gatherFaPa(int $a_ref_id, array $a_role_ids, bool $a_add_action=false)
initCreationForms(string $new_type)
Init creation forms.
ilErrorHandling $error
executeCommand()
execute command
view()
view object content (repository/workspace switch)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
New implementation of ilObjectGUI.
$location
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: buildRTE.php:22
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:33
ilRbacAdmin $rbac_admin
static prepareJsLinks(string $redraw_url, string $notes_url, string $tags_url, ilGlobalTemplateInterface $tpl=null)
Insert js/ajax links into template.
confirmedDelete()
Delete objects (repository/workspace switch)
ilObjectRequestRetriever $retriever
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
prepareOutput(bool $show_sub_objects=true)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
RequestWrapper $request_wrapper
putObjectInTree(ilObject $obj, int $parent_node_id=null)
Add object to tree at given position.
setPermissions(int $parent_ref_id)
Manages favourites, currently the interface for other components, needs discussion.
ilFavouritesManager $favourites
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjectDefinition $obj_definition
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28
ilToolbarGUI $toolbar
omitLocator(bool $omit=true)
createReference()
creates reference for object
parses the objects.xml it handles the xml-description of all ilias objects
const CREATE_OBJECT
static add(int $a_action, int $a_ref_id, array $a_diff, bool $a_source_ref_id=false)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
getTargetFrame(string $cmd, string $target_frame="")
getType()
Functions that must be overwritten.
Column user interface class.
setCreationMode(bool $mode=true)
Class ilObjectGUI Basic methods of all Output classes.
Interface RequestWrapper.
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
__construct(int $id=0, int $id_type=self::REPOSITORY_NODE_ID, int $parent_node_id=0)
ilGlobalTemplateInterface $tpl
static _lookupObjectId(int $ref_id)
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
ArrayBasedRequestWrapper $post_wrapper
withReferences()
Final/Private declaration of unchanged parent methods.
Base class for all sub item list gui&#39;s.
redrawHeaderAction()
Updating icons after ajax call.
ACL access handler GUI.
setTabs()
create tabs (repository/workspace switch)
setColumnSettings(ilColumnGUI $column_gui)
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
putInTree(int $parent_ref_id)
maybe this method should be in tree object!?
lookupObjectId(int $a_node_id)
Get object id for node id.
Error Handling & global info handling.
redirectToRefId(int $ref_id, string $cmd="")
static handleAfterSaveCallback(ilObject $obj, ?int $callback_ref_id)
After creation callback.
Access handler for portfolio NOTE: This file needs to stay in the classes directory, WAC will be confused otherwise.
ilLocatorGUI $locator
deleteConfirmedObjects()
Delete objects (workspace specific) This should probably be moved elsewhere as done with RepUtil...
isVisible(int $ref_id, string $type)
afterConstructor()
Do anything that should be done after constructor in here.
Class ilRbacAdmin Core functions for role based access control.
assignObject()
create object instance as internal property (repository/workspace switch)
setTargetFrame(string $cmd, string $target_frame)
static _lookupType(int $id, bool $reference=false)
addAdminLocatorItems(bool $do_not_add_object=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
initHeaderAction(?string $sub_type=null, ?int $sub_id=null)
Add header action menu.
ilRbacSystem $rbac_system
addLocatorItems()
Functions to be overwritten.
setReturnLocation(string $cmd, string $location)
ilAccessHandler $access