menu = new MenuItemModel('main', 'menu.root'); $this->apps = new MenuItemModel('apps', 'menu.apps', '', [], 'applications'); $this->admin = new MenuItemModel('admin', 'menu.admin', '', [], 'administration'); $this->system = new MenuItemModel('system', 'menu.system', '', [], 'configuration'); } public function findById(string $identifier): ?MenuItemModel { if (($tmp = $this->menu->findChild($identifier)) !== null) { return $tmp; } if (($tmp = $this->apps->findChild($identifier)) !== null) { return $tmp; } if (($tmp = $this->admin->findChild($identifier)) !== null) { return $tmp; } if (($tmp = $this->system->findChild($identifier)) !== null) { return $tmp; } return null; } public function getMenu(): MenuItemModel { return $this->menu; } public function getTimesheetMenu(): ?MenuItemModel { return $this->menu->getChild('times'); } public function getInvoiceMenu(): ?MenuItemModel { return $this->menu->getChild('invoices'); } public function getReportingMenu(): ?MenuItemModel { return $this->menu->getChild('reporting'); } /** * @deprecated since 2.22 - use getMenu() or getAdminMenu() instead */ public function getAppsMenu(): MenuItemModel { return $this->apps; } public function getAdminMenu(): MenuItemModel { return $this->admin; } public function getSystemMenu(): MenuItemModel { return $this->system; } }