コード例 #1
0
ファイル: Panel.php プロジェクト: eserozvataf/scabbia1
 /**
  * @ignore
  */
 public function render($uAction, array $uParams, array $uInput)
 {
     I18n::setLanguage('en');
     self::$modules = Config::get('panel/menuList', array());
     self::$modules[self::LOGIN_MODULE_INDEX] = array('actions' => array(self::DEFAULT_ACTION_INDEX => array('callback' => array(&$this, 'login'))));
     foreach (Config::get('panel/menuGeneratorList', array()) as $tGeneratorMethod) {
         call_user_func_array($tGeneratorMethod, array(&self::$modules));
     }
     self::$module = strlen($uAction) > 0 ? strtolower($uAction) : self::DEFAULT_MODULE_INDEX;
     if (!isset(self::$modules[self::$module])) {
         return false;
     }
     foreach (self::$modules as $tKey => $tMenu) {
         if (!isset($tMenu['title']) || isset($tMenu['role']) && !Auth::check($tMenu['role'])) {
             continue;
         }
         self::$menuItems[$tKey] = array($tKey === self::DEFAULT_MODULE_INDEX ? Http::url('panel') : Http::url('panel/' . $tKey), I18n::_($tMenu['title']), array());
         foreach ($tMenu['actions'] as $tMenuActionKey => $tMenuAction) {
             if (!isset($tMenuAction['title']) || isset($tMenuAction['role']) && !Auth::check($tMenuAction['role'])) {
                 continue;
             }
             if (isset($tMenuAction['before'])) {
                 if ($tMenuAction['before'] === 'separator') {
                     self::$menuItems[$tKey][self::MENU_ITEMS][] = '-';
                 }
             }
             if (isset($tMenuAction['customurl'])) {
                 $tUrl = $tMenuAction['customurl'];
             } elseif ($tMenuActionKey === self::DEFAULT_ACTION_INDEX) {
                 if ($tKey === self::DEFAULT_MODULE_INDEX) {
                     $tUrl = Http::url('panel');
                 } else {
                     $tUrl = Http::url('panel/' . $tKey);
                 }
             } else {
                 $tUrl = Http::url('panel/' . $tKey . '/' . $tMenuActionKey);
             }
             self::$menuItems[$tKey][self::MENU_ITEMS][] = array($tUrl, isset($tMenuAction['icon']) ? $tMenuAction['icon'] : 'minus', I18n::_($tMenuAction['title']));
             if (isset($tMenuAction['after'])) {
                 if ($tMenuAction['after'] === 'separator') {
                     self::$menuItems[$tKey][self::MENU_ITEMS][] = '-';
                 }
             }
         }
     }
     $tSubAction = count($uParams) > 0 ? array_shift($uParams) : self::DEFAULT_ACTION_INDEX;
     if (!isset(self::$modules[self::$module]['actions'][$tSubAction])) {
         return false;
     }
     return call_user_func_array(self::$modules[self::$module]['actions'][$tSubAction]['callback'], $uParams);
 }