init(); $this->load('menu-item'); } /** * Setup the main menu */ public function init() { $this->addItem('dashboard', [ 'label' => t('Dashboard'), 'url' => 'dashboard', 'icon' => 'dashboard', 'priority' => 10 ]); $this->addItem('system', [ 'label' => t('System'), 'icon' => 'services', 'priority' => 700, 'renderer' => [ 'SummaryNavigationItemRenderer', 'state' => 'critical' ], 'children' => [ 'about' => [ 'icon' => 'info', 'description' => t('Open about page'), 'label' => t('About'), 'url' => 'about', 'priority' => 700 ], 'announcements' => [ 'icon' => 'megaphone', 'description' => t('List announcements'), 'label' => t('Announcements'), 'url' => 'announcements', 'priority' => 710 ] ] ]); $this->addItem('configuration', [ 'label' => t('Configuration'), 'icon' => 'wrench', 'permission' => 'config/*', 'priority' => 800, 'children' => [ 'application' => [ 'icon' => 'wrench', 'description' => t('Open application configuration'), 'label' => t('Application'), 'url' => 'config/general', 'permission' => 'config/application/*', 'priority' => 810 ], 'authentication' => [ 'icon' => 'users', 'description' => t('Open authentication configuration'), 'label' => t('Authentication'), 'permission' => 'config/authentication/*', 'priority' => 830, 'url' => 'role/list' ], 'navigation' => [ 'icon' => 'sitemap', 'description' => t('Open shared navigation configuration'), 'label' => t('Shared Navigation'), 'url' => 'navigation/shared', 'permission' => 'config/application/navigation', 'priority' => 840, ], 'modules' => [ 'icon' => 'cubes', 'description' => t('Open module configuration'), 'label' => t('Modules'), 'url' => 'config/modules', 'permission' => 'config/modules', 'priority' => 890 ] ] ]); $this->addItem('user', [ 'cssClass' => 'user-nav-item', 'label' => Auth::getInstance()->getUser()->getUsername(), 'icon' => 'user', 'priority' => 900, 'children' => [ 'account' => [ 'icon' => 'sliders', 'description' => t('Open your account preferences'), 'label' => t('My Account'), 'priority' => 100, 'url' => 'account' ], 'logout' => [ 'icon' => 'off', 'description' => t('Log out'), 'label' => t('Logout'), 'priority' => 200, 'attributes' => ['target' => '_self'], 'url' => 'authentication/logout' ] ] ]); if (Logger::writesToFile()) { $this->getItem('system')->addChild($this->createItem('application_log', [ 'icon' => 'doc-text', 'description' => t('Open Application Log'), 'label' => t('Application Log'), 'url' => 'list/applicationlog', 'permission' => 'application/log', 'priority' => 900 ])); } } }