ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilMMTabHandling.php
Go to the documentation of this file.
1<?php
2
8{
9
13 private $ref_id;
17 private $rbacsystem;
21 private $tabs;
25 private $lng;
29 protected $ctrl;
33 private $help;
34
39 public function __construct(int $ref_id)
40 {
41 global $DIC;
42
43 $this->ref_id = $ref_id;
44 $this->tabs = $DIC['ilTabs'];
45 $this->lng = $DIC->language();
46 $this->lng->loadLanguageModule('mme');
47 $this->ctrl = $DIC['ilCtrl'];
48 $this->rbacsystem = $DIC['rbacsystem'];
49 $this->help = $DIC->help();
50 }
51
58 public function initTabs(string $tab, string $subtab = null, bool $backtab = false, $calling_class = "")
59 {
60 $this->tabs->clearTargets(); // clears Help-ID
61
62 // Help Screen-ID
63 $this->help->setScreenIdComponent('mme');
64 $this->help->setScreenId($tab);
65 $this->help->setSubScreenId($subtab);
66
67 if ($this->rbacsystem->checkAccess('visible,read', $this->ref_id)) {
68 $this->tabs->addTab(
70 $this->lng->txt(ilObjMainMenuGUI::TAB_MAIN),
71 $this->ctrl->getLinkTargetByClass(ilObjMainMenuGUI::class, ilObjMainMenuGUI::TAB_MAIN)
72 );
73 switch ($tab) {
75 $this->tabs->addSubTab(
78 $this->ctrl->getLinkTargetByClass(ilMMTopItemGUI::class, ilMMTopItemGUI::CMD_VIEW_TOP_ITEMS)
79 );
80 $this->tabs->addSubTab(
83 $this->ctrl->getLinkTargetByClass(ilMMSubItemGUI::class, ilMMSubItemGUI::CMD_VIEW_SUB_ITEMS)
84 );
85 $this->tabs->activateSubTab($subtab);
86 break;
87 }
88 if ($subtab === null) {
90 }
91 $this->tabs->activateSubTab($subtab);
92 }
93 if ($this->rbacsystem->checkAccess('edit_permission', $this->ref_id)) {
94 $this->tabs->addTab(
95 'perm_settings',
96 $this->lng->txt('perm_settings'),
97 $this->ctrl->getLinkTargetByClass(array(ilObjMainMenuGUI::class, ilPermissionGUI::class), 'perm')
98 );
99 }
100 if ($backtab) {
101 $this->tabs->clearTargets();
102 if ($calling_class == ilMMSubItemGUI::class) {
103 $this->tabs->setBackTarget($this->lng->txt('tab_back'), $this->ctrl->getLinkTargetByClass(ilMMSubItemGUI::class, $subtab));
104 } else {
105 $this->tabs->setBackTarget($this->lng->txt('tab_back'), $this->ctrl->getLinkTargetByClass(ilObjMainMenuGUI::class, $subtab));
106 }
107 }
108 $this->tabs->activateTab($tab);
109 }
110}
An exception for terminatinating execution or to throw for unit testing.
Class ilMMTabHandling.
initTabs(string $tab, string $subtab=null, bool $backtab=false, $calling_class="")
__construct(int $ref_id)
ilMMTabHandling constructor.
global $DIC
Definition: goto.php:24
help()
Definition: help.php:2