setTabs($tabs); $this->initializeSystemConfigurationTabs(); } /** * Setter for tabs * @param \Icinga\Web\Widget\Tabs $tabs */ public function setTabs($tabs) { $this->tabs = $tabs; } /** * Getter for tabs * @return \Icinga\Web\Widget\Tabs */ public function getTabs() { return $this->tabs; } /** * Build the tabs * */ public function build() { /** @var ConfigurationTab $configTab */ $configTab = null; foreach (Hook::all(self::HOOK_NAMESPACE) as $configTab) { if (!$configTab instanceof ConfigurationTabInterface) { throw new ProgrammingError('tab not instance of ConfigTabInterface'); } $this->getTabs()->add($configTab->getModuleName(), $configTab->getTab()); } } /** * Initialize system configuration tabs */ public function initializeSystemConfigurationTabs() { $configurationTab = new ConfigurationTab( 'configuration', 'configuration/index', 'Configuration' ); // Display something about us Hook::registerObject( ConfigurationTabBuilder::HOOK_NAMESPACE, $configurationTab->getModuleName(), $configurationTab ); $modulesOverviewTab = new ConfigurationTab( 'modules', 'modules/overview', 'Modules' ); Hook::registerObject( ConfigurationTabBuilder::HOOK_NAMESPACE, $modulesOverviewTab->getModuleName(), $modulesOverviewTab ); } }