menu.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 172 行
PHP
172 行
<?phpfunction Piwik_GetMenu(){ return Piwik_Menu::getInstance()->get();}function Piwik_AddMenu( $mainMenuName, $subMenuName, $url ){ Piwik_Menu::getInstance()->add($mainMenuName, $subMenuName, $url);}function Piwik_RenameMenuEntry($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed){ Piwik_Menu::getInstance()->rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed);}function Piwik_EditMenuUrl( $mainMenuToEdit, $subMenuToEdit, $newUrl ){ Piwik_Menu::getInstance()->editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl);} class Piwik_Menu{ protected $menu = null; protected $edits = array(); protected $renames = array(); static private $instance = null; /** * @return Piwik_Menu */ static public function getInstance() { if (self::$instance == null) { $c = __CLASS__; self::$instance = new $c(); } return self::$instance; } /* * @return void */ protected function __construct() { // we setup the main categories in a specific order $this->menu['Dashboard_Dashboard'] = null; $this->menu['General_Visitors'] = null; $this->menu['Actions_Actions'] = null; $this->menu['Referers_Referers'] = null; } /* * @return void */ function add( $mainMenuName, $subMenuName, $url ) { if(!isset($this->menu[$mainMenuName])) { $this->menu[$mainMenuName]['_url'] = $url; } if(!empty($subMenuName)) { $this->menu[$mainMenuName][$subMenuName] = $url; } } /* * @return void */ function rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed) { $this->renames[] = array($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed); } /* * @return void */ function editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl ) { $this->edits[] = array($mainMenuToEdit, $subMenuToEdit, $newUrl); } /* * @return array */ function get() { Piwik_PostEvent('Menu.add'); $this->applyEdits(); $this->applyRenames(); $this->applyOrdering(); return $this->menu; } /* * @return void */ private function applyEdits() { foreach($this->edits as $edit) { $mainMenuToEdit = $edit[0]; $subMenuToEdit = $edit[1]; $newUrl = $edit[2]; if(!isset($this->menu[$mainMenuToEdit][$subMenuToEdit])) { Piwik_AddMenu($mainMenuToEdit, $subMenuToEdit, $newUrl); } else { $this->menu[$mainMenuToEdit][$subMenuToEdit] = $newUrl; } } } /* * @return void */ private function applyRenames() { foreach($this->renames as $rename) { $mainMenuOriginal = $rename[0]; $subMenuOriginal = $rename[1]; $mainMenuRenamed = $rename[2]; $subMenuRenamed = $rename[3]; if(isset($this->menu[$mainMenuOriginal][$subMenuOriginal])) { $save = $this->menu[$mainMenuOriginal][$subMenuOriginal]; unset($this->menu[$mainMenuOriginal][$subMenuOriginal]); $this->menu[$mainMenuRenamed][$subMenuRenamed] = $save; } } } /* * @return void */ private function applyOrdering() { // we now do some cleaning on the menu foreach($this->menu as $key => &$element) { if(is_null($element)) { unset($this->menu[$key]); } else { // we want to move some submenus in the first position foreach($element as $nameSubmenu => $submenu) { if(ereg('Evolution', $nameSubmenu) !== false || ereg('Overview', $nameSubmenu) !== false) { $newElement = array($nameSubmenu => $submenu); unset($element[$nameSubmenu]); $element = $newElement + $element; break; } } $element['_url'] = reset($element); } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?