diff options
author | mattab <matthieu.aubry@gmail.com> | 2013-03-28 03:42:39 +0400 |
---|---|---|
committer | mattab <matthieu.aubry@gmail.com> | 2013-03-28 03:42:40 +0400 |
commit | ae4b03163792f0b6e933933e5d37df87dc3fd566 (patch) | |
tree | d1d7510a9728f587d3d63ebd03e4ecf3d904838b /core/Menu | |
parent | 158c2150f5f2e13ece459b8d131244c11b763997 (diff) |
Mass conversion of all files to the newly agreed coding standard: PSR 1/2
Converting Piwik core source files, PHP, JS, TPL, CSS
More info: http://piwik.org/participate/coding-standards/
Diffstat (limited to 'core/Menu')
-rw-r--r-- | core/Menu/Abstract.php | 435 | ||||
-rw-r--r-- | core/Menu/Admin.php | 115 | ||||
-rw-r--r-- | core/Menu/Main.php | 149 | ||||
-rw-r--r-- | core/Menu/Top.php | 131 |
4 files changed, 398 insertions, 432 deletions
diff --git a/core/Menu/Abstract.php b/core/Menu/Abstract.php index 3a0b49c62b..553a34489e 100644 --- a/core/Menu/Abstract.php +++ b/core/Menu/Abstract.php @@ -15,231 +15,212 @@ abstract class Piwik_Menu_Abstract { - protected $menu = null; - protected $menuEntries = array(); - protected $edits = array(); - protected $renames = array(); - protected $orderingApplied = false; - - /* - * Can't enforce static function in 5.2. - */ - //abstract static public function getInstance(); - - /** - * Builds the menu, applies edits, renames - * and orders the entries. - * - * @return Array - */ - public function get() - { - $this->buildMenu(); - $this->applyEdits(); - $this->applyRenames(); - $this->applyOrdering(); - return $this->menu; - } - - /** - * Adds a new entry to the menu. - * - * @param string $menuName - * @param string $subMenuName - * @param string $url - * @param bool $displayedForCurrentUser - * @param int $order - * @param string $tooltip Tooltip to display. - */ - public function add($menuName, $subMenuName, $url, $displayedForCurrentUser, $order = 50, $tooltip = false) - { - if($displayedForCurrentUser) - { - // make sure the idSite value used is numeric (hack-y fix for #3426) - if (!is_numeric(Piwik_Common::getRequestVar('idSite', false))) - { - $idSites = Piwik_SitesManager_API::getInstance()->getSitesIdWithAtLeastViewAccess(); - $url['idSite'] = reset($idSites); - } - - $this->menuEntries[] = array( - $menuName, - $subMenuName, - $url, - $order, - $tooltip - ); - } - } - - /** - * Builds a single menu item - * - * @param string $menuName - * @param string $subMenuName - * @param string $url - * @param int $order - * @param string $tooltip Tooltip to display. - */ - private function buildMenuItem($menuName, $subMenuName, $url, $order = 50, $tooltip = false) - { - if (!isset($this->menu[$menuName]) || empty($subMenuName)) - { - $this->menu[$menuName]['_url'] = $url; - if(empty($subMenuName)) { - $this->menu[$menuName]['_order'] = $order; - } - $this->menu[$menuName]['_name'] = $menuName; - $this->menu[$menuName]['_hasSubmenu'] = false; - $this->menu[$menuName]['_tooltip'] = $tooltip; - } - if (!empty($subMenuName)) - { - $this->menu[$menuName][$subMenuName]['_url'] = $url; - $this->menu[$menuName][$subMenuName]['_order'] = $order; - $this->menu[$menuName][$subMenuName]['_name'] = $subMenuName; - $this->menu[$menuName]['_hasSubmenu'] = true; - $this->menu[$menuName]['_tooltip'] = $tooltip; - } - } - - /** - * Builds the menu from the $this->menuEntries variable. - */ - private function buildMenu() - { - foreach ($this->menuEntries as $menuEntry) - { - $this->buildMenuItem($menuEntry[0], $menuEntry[1], $menuEntry[2], $menuEntry[3], $menuEntry[4]); - } - } - - /** - * Renames a single menu entry. - * - * @param $mainMenuOriginal - * @param $subMenuOriginal - * @param $mainMenuRenamed - * @param $subMenuRenamed - */ - public function rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed) - { - $this->renames[] = array($mainMenuOriginal, $subMenuOriginal, - $mainMenuRenamed, $subMenuRenamed); - } - - /** - * Edits a URL of an existing menu entry. - * - * @param $mainMenuToEdit - * @param $subMenuToEdit - * @param $newUrl - */ - public function editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl) - { - $this->edits[] = array($mainMenuToEdit, $subMenuToEdit, $newUrl); - } - - /** - * Applies all edits to the menu. - */ - private function applyEdits() - { - foreach ($this->edits as $edit) - { - $mainMenuToEdit = $edit[0]; - $subMenuToEdit = $edit[1]; - $newUrl = $edit[2]; - if (!isset($this->menu[$mainMenuToEdit][$subMenuToEdit])) - { - $this->buildMenuItem($mainMenuToEdit, $subMenuToEdit, $newUrl); - } - else - { - $this->menu[$mainMenuToEdit][$subMenuToEdit]['_url'] = $newUrl; - } - } - } - - /** - * Applies renames to the menu. - */ - private function applyRenames() - { - foreach ($this->renames as $rename) - { - $mainMenuOriginal = $rename[0]; - $subMenuOriginal = $rename[1]; - $mainMenuRenamed = $rename[2]; - $subMenuRenamed = $rename[3]; - // Are we changing a submenu? - if (!empty($subMenuOriginal)) - { - if (isset($this->menu[$mainMenuOriginal][$subMenuOriginal])) - { - $save = $this->menu[$mainMenuOriginal][$subMenuOriginal]; - $save['_name'] = $subMenuRenamed; - unset($this->menu[$mainMenuOriginal][$subMenuOriginal]); - $this->menu[$mainMenuRenamed][$subMenuRenamed] = $save; - } - } - // Changing a first-level element - else if (isset($this->menu[$mainMenuOriginal])) - { - $save = $this->menu[$mainMenuOriginal]; - $save['_name'] = $mainMenuRenamed; - unset($this->menu[$mainMenuOriginal]); - $this->menu[$mainMenuRenamed] = $save; - } - } - } - - /** - * Orders the menu according to their order. - */ - private function applyOrdering() - { - if (empty($this->menu) - || $this->orderingApplied) - { - return; - } - - uasort($this->menu, array($this, 'menuCompare')); - foreach ($this->menu as $key => &$element) - { - if (is_null($element)) - { - unset($this->menu[$key]); - } - else if ($element['_hasSubmenu']) - { - uasort($element, array($this, 'menuCompare')); - } - } - - $this->orderingApplied = true; - } - - /** - * Compares two menu entries. Used for ordering. - * - * @param array $itemOne - * @param array $itemTwo - * @return boolean - */ - protected function menuCompare($itemOne, $itemTwo) - { - if (!is_array($itemOne) || !is_array($itemTwo) - || !isset($itemOne['_order']) || !isset($itemTwo['_order'])) - { - return 0; - } - - if ($itemOne['_order'] == $itemTwo['_order']) - { - return strcmp($itemOne['_name'], $itemTwo['_name']); - } - return ($itemOne['_order'] < $itemTwo['_order']) ? -1 : 1; - } + protected $menu = null; + protected $menuEntries = array(); + protected $edits = array(); + protected $renames = array(); + protected $orderingApplied = false; + + /* + * Can't enforce static function in 5.2. + */ + //abstract static public function getInstance(); + + /** + * Builds the menu, applies edits, renames + * and orders the entries. + * + * @return Array + */ + public function get() + { + $this->buildMenu(); + $this->applyEdits(); + $this->applyRenames(); + $this->applyOrdering(); + return $this->menu; + } + + /** + * Adds a new entry to the menu. + * + * @param string $menuName + * @param string $subMenuName + * @param string $url + * @param bool $displayedForCurrentUser + * @param int $order + * @param string $tooltip Tooltip to display. + */ + public function add($menuName, $subMenuName, $url, $displayedForCurrentUser, $order = 50, $tooltip = false) + { + if ($displayedForCurrentUser) { + // make sure the idSite value used is numeric (hack-y fix for #3426) + if (!is_numeric(Piwik_Common::getRequestVar('idSite', false))) { + $idSites = Piwik_SitesManager_API::getInstance()->getSitesIdWithAtLeastViewAccess(); + $url['idSite'] = reset($idSites); + } + + $this->menuEntries[] = array( + $menuName, + $subMenuName, + $url, + $order, + $tooltip + ); + } + } + + /** + * Builds a single menu item + * + * @param string $menuName + * @param string $subMenuName + * @param string $url + * @param int $order + * @param string $tooltip Tooltip to display. + */ + private function buildMenuItem($menuName, $subMenuName, $url, $order = 50, $tooltip = false) + { + if (!isset($this->menu[$menuName]) || empty($subMenuName)) { + $this->menu[$menuName]['_url'] = $url; + if (empty($subMenuName)) { + $this->menu[$menuName]['_order'] = $order; + } + $this->menu[$menuName]['_name'] = $menuName; + $this->menu[$menuName]['_hasSubmenu'] = false; + $this->menu[$menuName]['_tooltip'] = $tooltip; + } + if (!empty($subMenuName)) { + $this->menu[$menuName][$subMenuName]['_url'] = $url; + $this->menu[$menuName][$subMenuName]['_order'] = $order; + $this->menu[$menuName][$subMenuName]['_name'] = $subMenuName; + $this->menu[$menuName]['_hasSubmenu'] = true; + $this->menu[$menuName]['_tooltip'] = $tooltip; + } + } + + /** + * Builds the menu from the $this->menuEntries variable. + */ + private function buildMenu() + { + foreach ($this->menuEntries as $menuEntry) { + $this->buildMenuItem($menuEntry[0], $menuEntry[1], $menuEntry[2], $menuEntry[3], $menuEntry[4]); + } + } + + /** + * Renames a single menu entry. + * + * @param $mainMenuOriginal + * @param $subMenuOriginal + * @param $mainMenuRenamed + * @param $subMenuRenamed + */ + public function rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed) + { + $this->renames[] = array($mainMenuOriginal, $subMenuOriginal, + $mainMenuRenamed, $subMenuRenamed); + } + + /** + * Edits a URL of an existing menu entry. + * + * @param $mainMenuToEdit + * @param $subMenuToEdit + * @param $newUrl + */ + public function editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl) + { + $this->edits[] = array($mainMenuToEdit, $subMenuToEdit, $newUrl); + } + + /** + * Applies all edits to the menu. + */ + private function applyEdits() + { + foreach ($this->edits as $edit) { + $mainMenuToEdit = $edit[0]; + $subMenuToEdit = $edit[1]; + $newUrl = $edit[2]; + if (!isset($this->menu[$mainMenuToEdit][$subMenuToEdit])) { + $this->buildMenuItem($mainMenuToEdit, $subMenuToEdit, $newUrl); + } else { + $this->menu[$mainMenuToEdit][$subMenuToEdit]['_url'] = $newUrl; + } + } + } + + /** + * Applies renames to the menu. + */ + private function applyRenames() + { + foreach ($this->renames as $rename) { + $mainMenuOriginal = $rename[0]; + $subMenuOriginal = $rename[1]; + $mainMenuRenamed = $rename[2]; + $subMenuRenamed = $rename[3]; + // Are we changing a submenu? + if (!empty($subMenuOriginal)) { + if (isset($this->menu[$mainMenuOriginal][$subMenuOriginal])) { + $save = $this->menu[$mainMenuOriginal][$subMenuOriginal]; + $save['_name'] = $subMenuRenamed; + unset($this->menu[$mainMenuOriginal][$subMenuOriginal]); + $this->menu[$mainMenuRenamed][$subMenuRenamed] = $save; + } + } // Changing a first-level element + else if (isset($this->menu[$mainMenuOriginal])) { + $save = $this->menu[$mainMenuOriginal]; + $save['_name'] = $mainMenuRenamed; + unset($this->menu[$mainMenuOriginal]); + $this->menu[$mainMenuRenamed] = $save; + } + } + } + + /** + * Orders the menu according to their order. + */ + private function applyOrdering() + { + if (empty($this->menu) + || $this->orderingApplied + ) { + return; + } + + uasort($this->menu, array($this, 'menuCompare')); + foreach ($this->menu as $key => &$element) { + if (is_null($element)) { + unset($this->menu[$key]); + } else if ($element['_hasSubmenu']) { + uasort($element, array($this, 'menuCompare')); + } + } + + $this->orderingApplied = true; + } + + /** + * Compares two menu entries. Used for ordering. + * + * @param array $itemOne + * @param array $itemTwo + * @return boolean + */ + protected function menuCompare($itemOne, $itemTwo) + { + if (!is_array($itemOne) || !is_array($itemTwo) + || !isset($itemOne['_order']) || !isset($itemTwo['_order']) + ) { + return 0; + } + + if ($itemOne['_order'] == $itemTwo['_order']) { + return strcmp($itemOne['_name'], $itemTwo['_name']); + } + return ($itemOne['_order'] < $itemTwo['_order']) ? -1 : 1; + } } diff --git a/core/Menu/Admin.php b/core/Menu/Admin.php index 9463e2291d..f85259811e 100644 --- a/core/Menu/Admin.php +++ b/core/Menu/Admin.php @@ -1,10 +1,10 @@ <?php /** * Piwik - Open source web analytics - * + * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * + * * @category Piwik * @package Piwik_Menu */ @@ -14,33 +14,31 @@ */ class Piwik_Menu_Admin extends Piwik_Menu_Abstract { - static private $instance = null; + static private $instance = null; - /** - * @return Piwik_Menu_Admin - */ - static public function getInstance() - { - if (self::$instance == null) - { - self::$instance = new self; - } - return self::$instance; - } + /** + * @return Piwik_Menu_Admin + */ + static public function getInstance() + { + if (self::$instance == null) { + self::$instance = new self; + } + return self::$instance; + } - /** - * Triggers the AdminMenu.add hook and returns the menu. - * - * @return Array - */ - public function get() - { - if(!$this->menu) - { - Piwik_PostEvent('AdminMenu.add'); - } - return parent::get(); - } + /** + * Triggers the AdminMenu.add hook and returns the menu. + * + * @return Array + */ + public function get() + { + if (!$this->menu) { + Piwik_PostEvent('AdminMenu.add'); + } + return parent::get(); + } } /** @@ -50,21 +48,20 @@ class Piwik_Menu_Admin extends Piwik_Menu_Abstract */ function Piwik_GetCurrentAdminMenuName() { - $menu = Piwik_GetAdminMenu(); - $currentModule = Piwik::getModule(); - $currentAction = Piwik::getAction(); - foreach($menu as $name => $submenu) - { - foreach($submenu as $subMenuName => $parameters) { - if(strpos($subMenuName, '_') !== 0 && - $parameters['_url']['module'] == $currentModule - && $parameters['_url']['action'] == $currentAction) - { - return $subMenuName; - } - } - } - return false; + $menu = Piwik_GetAdminMenu(); + $currentModule = Piwik::getModule(); + $currentAction = Piwik::getAction(); + foreach ($menu as $name => $submenu) { + foreach ($submenu as $subMenuName => $parameters) { + if (strpos($subMenuName, '_') !== 0 && + $parameters['_url']['module'] == $currentModule + && $parameters['_url']['action'] == $currentAction + ) { + return $subMenuName; + } + } + } + return false; } /** @@ -74,43 +71,43 @@ function Piwik_GetCurrentAdminMenuName() */ function Piwik_GetAdminMenu() { - return Piwik_Menu_Admin::getInstance()->get(); + return Piwik_Menu_Admin::getInstance()->get(); } /** * Adds a new AdminMenu entry. * - * @param string $adminMenuName - * @param string $url - * @param boolean $displayedForCurrentUser - * @param int $order + * @param string $adminMenuName + * @param string $url + * @param boolean $displayedForCurrentUser + * @param int $order */ -function Piwik_AddAdminMenu( $adminMenuName, $url, $displayedForCurrentUser = true, $order = 10 ) +function Piwik_AddAdminMenu($adminMenuName, $url, $displayedForCurrentUser = true, $order = 10) { - Piwik_Menu_Admin::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); + Piwik_Menu_Admin::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); } /** * Adds a new AdminMenu entry with a submenu. * - * @param string $adminMenuName - * @param string $adminSubMenuName - * @param string $url - * @param boolean $displayedForCurrentUser - * @param int $order + * @param string $adminMenuName + * @param string $adminSubMenuName + * @param string $url + * @param boolean $displayedForCurrentUser + * @param int $order */ -function Piwik_AddAdminSubMenu( $adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser = true, $order = 10 ) +function Piwik_AddAdminSubMenu($adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser = true, $order = 10) { - Piwik_Menu_Admin::getInstance()->add($adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser, $order); + Piwik_Menu_Admin::getInstance()->add($adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser, $order); } /** * Renames an AdminMenu entry. * - * @param string $adminMenuOriginal - * @param string $adminMenuRenamed + * @param string $adminMenuOriginal + * @param string $adminMenuRenamed */ function Piwik_RenameAdminMenuEntry($adminMenuOriginal, $adminMenuRenamed) { - Piwik_Menu_Admin::getInstance()->rename($adminMenuOriginal, null, $adminMenuRenamed, null); + Piwik_Menu_Admin::getInstance()->rename($adminMenuOriginal, null, $adminMenuRenamed, null); } diff --git a/core/Menu/Main.php b/core/Menu/Main.php index 66eb237c5d..fa21883a30 100644 --- a/core/Menu/Main.php +++ b/core/Menu/Main.php @@ -1,10 +1,10 @@ <?php /** * Piwik - Open source web analytics - * + * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * + * * @category Piwik * @package Piwik_Menu */ @@ -14,69 +14,64 @@ */ class Piwik_Menu_Main extends Piwik_Menu_Abstract { - static private $instance = null; - - /** - * @return Piwik_Menu_Abstract - */ - static public function getInstance() - { - if (self::$instance == null) - { - self::$instance = new self; - } - return self::$instance; - } + static private $instance = null; + + /** + * @return Piwik_Menu_Abstract + */ + static public function getInstance() + { + if (self::$instance == null) { + self::$instance = new self; + } + return self::$instance; + } + + /** + * Returns if the URL was found in the menu. + * + * @param string $url + * @return boolean + */ + public function isUrlFound($url) + { + $menu = Piwik_Menu_Main::getInstance()->get(); - /** - * Returns if the URL was found in the menu. - * - * @param string $url - * @return boolean - */ - public function isUrlFound($url) - { - $menu = Piwik_Menu_Main::getInstance()->get(); - - foreach($menu as $mainMenuName => $subMenus) - { - foreach($subMenus as $subMenuName => $menuUrl) - { - if(strpos($subMenuName, '_') !== 0 && $menuUrl['_url'] == $url) - { - return true; - } - } - } - return false; - } + foreach ($menu as $mainMenuName => $subMenus) { + foreach ($subMenus as $subMenuName => $menuUrl) { + if (strpos($subMenuName, '_') !== 0 && $menuUrl['_url'] == $url) { + return true; + } + } + } + return false; + } + + /** + * Triggers the Menu.add hook and returns the menu. + * + * @return Array + */ + public function get() + { + // We trigger the Event only once! + if (!$this->menu) { + Piwik_PostEvent('Menu.add'); + } + return parent::get(); + } - /** - * Triggers the Menu.add hook and returns the menu. - * - * @return Array - */ - public function get() - { - // We trigger the Event only once! - if(!$this->menu) - { - Piwik_PostEvent('Menu.add'); - } - return parent::get(); - } - } /** * Checks if an entry uses the URL $url. - * - * @param string $url + * + * @param string $url * @return boolean */ function Piwik_IsMenuUrlFound($url) { - return Piwik_Menu_Main::getInstance()->isUrlFound($url); + return Piwik_Menu_Main::getInstance()->isUrlFound($url); } /** @@ -86,45 +81,45 @@ function Piwik_IsMenuUrlFound($url) */ function Piwik_GetMenu() { - return Piwik_Menu_Main::getInstance()->get(); + return Piwik_Menu_Main::getInstance()->get(); } /** * Adds a new entry to the MainMenu. * - * @param string $mainMenuName - * @param string $subMenuName - * @param string $url - * @param boolean $displayedForCurrentUser - * @param int $order + * @param string $mainMenuName + * @param string $subMenuName + * @param string $url + * @param boolean $displayedForCurrentUser + * @param int $order */ -function Piwik_AddMenu( $mainMenuName, $subMenuName, $url, $displayedForCurrentUser = true, $order = 10) +function Piwik_AddMenu($mainMenuName, $subMenuName, $url, $displayedForCurrentUser = true, $order = 10) { - Piwik_Menu_Main::getInstance()->add($mainMenuName, $subMenuName, $url, $displayedForCurrentUser, $order); + Piwik_Menu_Main::getInstance()->add($mainMenuName, $subMenuName, $url, $displayedForCurrentUser, $order); } /** * Renames a menu entry. - * - * @param string $mainMenuOriginal - * @param string $subMenuOriginal - * @param string $mainMenuRenamed - * @param string $subMenuRenamed + * + * @param string $mainMenuOriginal + * @param string $subMenuOriginal + * @param string $mainMenuRenamed + * @param string $subMenuRenamed */ -function Piwik_RenameMenuEntry($mainMenuOriginal, $subMenuOriginal, - $mainMenuRenamed, $subMenuRenamed) +function Piwik_RenameMenuEntry($mainMenuOriginal, $subMenuOriginal, + $mainMenuRenamed, $subMenuRenamed) { - Piwik_Menu_Main::getInstance()->rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed); + Piwik_Menu_Main::getInstance()->rename($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed); } /** * Edits the URL of a menu entry. - * - * @param string $mainMenuToEdit - * @param string $subMenuToEdit - * @param string $newUrl + * + * @param string $mainMenuToEdit + * @param string $subMenuToEdit + * @param string $newUrl */ -function Piwik_EditMenuUrl( $mainMenuToEdit, $subMenuToEdit, $newUrl ) +function Piwik_EditMenuUrl($mainMenuToEdit, $subMenuToEdit, $newUrl) { - Piwik_Menu_Main::getInstance()->editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl); + Piwik_Menu_Main::getInstance()->editUrl($mainMenuToEdit, $subMenuToEdit, $newUrl); } diff --git a/core/Menu/Top.php b/core/Menu/Top.php index cbb768bb48..f24822ac26 100644 --- a/core/Menu/Top.php +++ b/core/Menu/Top.php @@ -1,10 +1,10 @@ <?php /** * Piwik - Open source web analytics - * + * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * + * * @category Piwik * @package Piwik_Menu */ @@ -14,56 +14,52 @@ */ class Piwik_Menu_Top extends Piwik_Menu_Abstract { - static private $instance = null; + static private $instance = null; - /** - * @return Piwik_Menu_Top - */ - static public function getInstance() - { - if (self::$instance == null) - { - self::$instance = new self; - } - return self::$instance; - } + /** + * @return Piwik_Menu_Top + */ + static public function getInstance() + { + if (self::$instance == null) { + self::$instance = new self; + } + return self::$instance; + } - /** - * Directly adds a menu entry containing html. - * - * @param string $menuName - * @param string $data - * @param boolean $displayedForCurrentUser - * @param int $order - * @param string $tooltip Tooltip to display. - */ - public function addHtml($menuName, $data, $displayedForCurrentUser, $order, $tooltip) - { - if($displayedForCurrentUser) - { - if(!isset($this->menu[$menuName])) - { - $this->menu[$menuName]['_html'] = $data; - $this->menu[$menuName]['_order'] = $order; - $this->menu[$menuName]['_hasSubmenu'] = false; - $this->menu[$menuName]['_tooltip'] = $tooltip; - } - } - } + /** + * Directly adds a menu entry containing html. + * + * @param string $menuName + * @param string $data + * @param boolean $displayedForCurrentUser + * @param int $order + * @param string $tooltip Tooltip to display. + */ + public function addHtml($menuName, $data, $displayedForCurrentUser, $order, $tooltip) + { + if ($displayedForCurrentUser) { + if (!isset($this->menu[$menuName])) { + $this->menu[$menuName]['_html'] = $data; + $this->menu[$menuName]['_order'] = $order; + $this->menu[$menuName]['_hasSubmenu'] = false; + $this->menu[$menuName]['_tooltip'] = $tooltip; + } + } + } - /** - * Triggers the TopMenu.add hook and returns the menu. - * - * @return Array - */ - public function get() - { - if(!$this->menu) - { - Piwik_PostEvent('TopMenu.add'); - } - return parent::get(); - } + /** + * Triggers the TopMenu.add hook and returns the menu. + * + * @return Array + */ + public function get() + { + if (!$this->menu) { + Piwik_PostEvent('TopMenu.add'); + } + return parent::get(); + } } /** @@ -73,39 +69,36 @@ class Piwik_Menu_Top extends Piwik_Menu_Abstract */ function Piwik_GetTopMenu() { - return Piwik_Menu_Top::getInstance()->get(); + return Piwik_Menu_Top::getInstance()->get(); } /** * Adds a new entry to the TopMenu. * - * @param string $topMenuName - * @param string $data - * @param boolean $displayedForCurrentUser - * @param int $order - * @param bool $isHTML - * @param string $tooltip Tooltip to display. + * @param string $topMenuName + * @param string $data + * @param boolean $displayedForCurrentUser + * @param int $order + * @param bool $isHTML + * @param string $tooltip Tooltip to display. */ -function Piwik_AddTopMenu( $topMenuName, $data, $displayedForCurrentUser = true, $order = 10, $isHTML = false, - $tooltip = false) +function Piwik_AddTopMenu($topMenuName, $data, $displayedForCurrentUser = true, $order = 10, $isHTML = false, + $tooltip = false) { - if($isHTML) - { - Piwik_Menu_Top::getInstance()->addHtml($topMenuName, $data, $displayedForCurrentUser, $order, $tooltip); - } - else - { - Piwik_Menu_Top::getInstance()->add($topMenuName, null, $data, $displayedForCurrentUser, $order, $tooltip); - } + if ($isHTML) { + Piwik_Menu_Top::getInstance()->addHtml($topMenuName, $data, $displayedForCurrentUser, $order, $tooltip); + } else { + Piwik_Menu_Top::getInstance()->add($topMenuName, null, $data, $displayedForCurrentUser, $order, $tooltip); + } } /** * Renames a entry of the TopMenu * - * @param string $topMenuOriginal - * @param string $topMenuRenamed + * @param string $topMenuOriginal + * @param string $topMenuRenamed */ function Piwik_RenameTopMenuEntry($topMenuOriginal, $topMenuRenamed) { - Piwik_Menu_Top::getInstance()->rename($topMenuOriginal, null, $topMenuRenamed, null); + Piwik_Menu_Top::getInstance()->rename($topMenuOriginal, null, $topMenuRenamed, null); } |