/** * @param string $currentModule Name of the current (active) module * @return \Ip\Internal\Admin\MenuItem[] */ public function getAdminMenuItems($currentModule) { $answer = array(); $modules = \Ip\Internal\Plugins\Model::getModules(); foreach ($modules as $module) { // skipping modules that don't have 'index' (default) action in AdminController $controllerClass = 'Ip\\Internal\\' . $module . '\\AdminController'; if (!class_exists($controllerClass) || !method_exists($controllerClass, 'index')) { continue; } $moduleItem = new \Ip\Internal\Admin\MenuItem(); $moduleItem->setTitle(__($module, 'Ip-admin', false)); $moduleItem->setUrl(ipActionUrl(array('aa' => $module . '.index'))); $moduleItem->setIcon($this->getAdminMenuItemIcon($module)); if ($module == $currentModule) { $moduleItem->markAsCurrent(true); } if (ipAdminPermission($module)) { $answer[] = $moduleItem; } } $plugins = \Ip\Internal\Plugins\Service::getActivePlugins(); foreach ($plugins as $plugin) { $controllerClass = '\\Plugin\\' . $plugin['name'] . '\\AdminController'; if (!class_exists($controllerClass) || !method_exists($controllerClass, 'index')) { continue; } $moduleItem = new \Ip\Internal\Admin\MenuItem(); $moduleItem->setTitle(__($plugin['title'], 'Ip-admin', false)); $moduleItem->setUrl(ipActionUrl(array('aa' => $plugin['name']))); $moduleItem->setIcon($this->getAdminMenuItemIcon($plugin['name'])); if ($plugin['name'] == $currentModule) { $moduleItem->markAsCurrent(true); } if (ipAdminPermission($plugin['name'])) { $answer[] = $moduleItem; } } $answer = ipFilter('ipAdminMenu', $answer); return $answer; }
/** * @param \Ip\Menu\Item[] $menu * @param $info */ public static function ipAdminMenu($menu, $info) { $urls = Submenu::getSubmenuUrls(); $filteredMenu = array(); //remove menu items that are in submenu foreach ($menu as $menuItem) { if (!in_array($menuItem->getUrl(), $urls)) { $filteredMenu[] = $menuItem; } } $submenuItems = Submenu::getSubmenuItems(); if (!empty($submenuItems)) { $firstSubmenuItem = $submenuItems[0]; $newItem = new \Ip\Internal\Admin\MenuItem(); $newItem->setTitle(__('System', 'Ip-admin', false)); $newItem->setUrl($firstSubmenuItem->getUrl()); $newItem->setIcon('fa-cogs'); $filteredMenu[] = $newItem; } return $filteredMenu; }