Esempio n. 1
0
 protected static function getControllerMenu($class)
 {
     $reflector = new \ReflectionClass($class);
     $methods = $reflector->getMethods();
     $submenuItems = array();
     foreach ($methods as $method) {
         if (in_array($method, array('index'))) {
             continue;
         }
         if (!$method->isPublic()) {
             continue;
         }
         $docComment = $method->getDocComment();
         if (preg_match_all('/@(\\w+)\\s+(.*)\\r?\\n/m', $docComment, $matches)) {
             $result = array_combine($matches[1], $matches[2]);
             if (isset($result['ipSubmenu'])) {
                 $menuItem = new \Ip\Menu\Item();
                 $menuItem->setTitle(__($result['ipSubmenu'], ipRoute()->plugin(), false));
                 $menuItem->setUrl(ipActionUrl(array('aa' => ipRoute()->plugin() . '.' . $method->getName())));
                 if (ipRoute()->action() == $method->getName()) {
                     $menuItem->markAsCurrent(true);
                 }
                 $submenuItems[] = $menuItem;
             }
         }
     }
     if (!empty($submenuItems)) {
         return $submenuItems;
     }
     return null;
 }
Esempio n. 2
0
 /**
  * @return \Ip\Menu\Item[]
  */
 public static function getSubmenuItems()
 {
     $modules = self::getModuleNames();
     $submenuItems = array();
     if (0) {
         // It is for translation engine to find following strings
         __('Content', 'Ip-admin');
         __('Pages', 'Ip-admin');
         __('Design', 'Ip-admin');
         __('Plugins', 'Ip-admin');
         __('Config', 'Ip-admin');
         __('Languages', 'Ip-admin');
         __('System', 'Ip-admin');
     }
     foreach ($modules as $module) {
         $menuItem = new \Ip\Menu\Item();
         $title = $module;
         if ($title == 'Email') {
             $title = 'Email log';
         }
         $menuItem->setTitle(__($title, 'Ip-admin', false));
         //
         $menuItem->setUrl(ipActionUrl(array('aa' => $module . '.index')));
         if (ipRoute()->controllerClass() == 'Ip\\Internal\\' . $module . '\\AdminController') {
             $menuItem->markAsCurrent(true);
         }
         if (ipAdminPermission($module)) {
             $submenuItems[] = $menuItem;
         }
     }
     return $submenuItems;
 }