ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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(
77  $this->lng->txt(ilMMTopItemGUI::CMD_VIEW_TOP_ITEMS),
78  $this->ctrl->getLinkTargetByClass(ilMMTopItemGUI::class, ilMMTopItemGUI::CMD_VIEW_TOP_ITEMS)
79  );
80  $this->tabs->addSubTab(
82  $this->lng->txt(ilMMSubItemGUI::CMD_VIEW_SUB_ITEMS),
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 }
global $DIC
Definition: saml.php:7
initTabs(string $tab, string $subtab=null, bool $backtab=false, $calling_class="")
Class ilMMTabHandling.
__construct(int $ref_id)
ilMMTabHandling constructor.