Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @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;
 }