/** * @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); }