ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilObjMainMenuGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
23
31{
35 public const MAINTAB_VIEW = 'view';
39 public const SUBTAB_TOP_ITEMS = 'top_items';
43 public const SUBTAB_SUB_ITEMS = 'sub_items';
47 public const TAB_PERMISSIONS = 'permissions';
48
49 private Container $dic;
50
54 public function __construct()
55 {
56 global $DIC;
57
58 $this->dic = $DIC;
59
60 $this->ref_id = $DIC->http()->wrapper()->query()->has('ref_id')
61 ? $DIC->http()->wrapper()->query()->retrieve('ref_id', $DIC->refinery()->kindlyTo()->int())
62 : null;
63
64 parent::__construct($this->ref_id);
65 $this->ctrl = $DIC['ilCtrl'];
66 $this->assignObject();
67 }
68
69 #[\Override]
70 public function executeCommand(): void
71 {
72 $this->prepareOutput();
73
74 $mediator = Pons::fromDIC(['mme', 'gsfo'], new ilMMItemTranslationRepository($this->dic->database()));
75 $tabs = $mediator->tabs();
76 $tabs->add(
77 $view = $tabs
78 ->build(self::MAINTAB_VIEW, self::MAINTAB_VIEW, [self::class])
79 ->withPermission('read'),
80 $main = $tabs
81 ->build(self::SUBTAB_TOP_ITEMS, 'subtab_topitems', [ilMMTopItemGUI::class], $view)
82 ->withPermission('read'),
83 $sub_items = $tabs
84 ->build(
85 self::SUBTAB_SUB_ITEMS,
86 'subtab_subitems',
87 [[ilMMTopItemGUI::class, ilMMSubItemGUI::class]],
88 $main
89 )
90 ->withPermission('read'),
91 // Permissions Tab
92 $tabs
93 ->build(self::TAB_PERMISSIONS, 'rbac_permissions', [[self::class, ilPermissionGUI::class], 'perm'])
94 ->withPermission('edit_permissions')
95 );
96
97 $next_class = $this->ctrl->getNextClass();
98 if ($next_class === '') {
99 $this->ctrl->redirectByClass(
100 ilMMTopItemGUI::class
101 );
102 }
103
104 $mediator->handle(self::SUBTAB_TOP_ITEMS, [ilPermissionGUI::class, ilMMUploadHandlerGUI::class]);
105
106 switch ($next_class) {
107 case strtolower(ilPermissionGUI::class):
108 $tabs->activate(self::TAB_PERMISSIONS);
109 $perm_gui = new ilPermissionGUI($this);
110 $this->ctrl->forwardCommand($perm_gui);
111 break;
112 case strtolower(ilMMUploadHandlerGUI::class):
113 $g = new ilMMUploadHandlerGUI();
114 $this->ctrl->forwardCommand($g);
115 break;
116 default:
117 break;
118 }
119 }
120
121 public function getType(): string
122 {
123 return "mme";
124 }
125}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:36
Class ilMMUploadHandlerGUI.
Class ilObjMainMenuGUI @ilCtrl_IsCalledBy ilObjMainMenuGUI: ilAdministrationGUI @ilCtrl_Calls ilObjMa...
__construct()
ilObjMainMenuGUI constructor.
getType()
Functions that must be overwritten.
executeCommand()
execute command
New implementation of ilObjectGUI.
assignObject()
create object instance as internal property (repository/workspace switch)
prepareOutput(bool $show_sub_objects=true)
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26