add( * 'MyPlugin_MyTranslatedAdminMenuCategory', * 'MyPlugin_MyTranslatedAdminPageName', * array('module' => 'MyPlugin', 'action' => 'index'), * Piwik::isUserHasSomeAdminAccess(), * $order = 2 * ); * } * * @method static \Piwik\Menu\MenuAdmin getInstance() */ class MenuAdmin extends MenuAbstract { /** * Adds a new AdminMenu entry under the 'Settings' category. * * @param string $adminMenuName The name of the admin menu entry. Can be a translation token. * @param string|array $url The URL the admin menu entry should link to, or an array of query parameters * that can be used to build the URL. * @param boolean $displayedForCurrentUser Whether this menu entry should be displayed for the * current user. If false, the entry will not be added. * @param int $order The order hint. * @deprecated since version 2.4.0. See {@link Piwik\Plugin\Menu} for new implementation. */ public static function addEntry($adminMenuName, $url, $displayedForCurrentUser = true, $order = 20) { self::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); } /** * See {@link add()}. Adds a new menu item to the development section of the admin menu. * @param string $menuName * @param array $url * @param int $order * @param bool|string $tooltip * @api * @since 2.5.0 */ public function addDevelopmentItem($menuName, $url, $order = 50, $tooltip = false) { $this->add('CoreAdminHome_MenuDevelopment', $menuName, $url, true, $order, $tooltip); } /** * See {@link add()}. Adds a new menu item to the diagnostic section of the admin menu. * @param string $menuName * @param array $url * @param int $order * @param bool|string $tooltip * @api * @since 2.5.0 */ public function addDiagnosticItem($menuName, $url, $order = 50, $tooltip = false) { $this->add('CoreAdminHome_MenuDiagnostic', $menuName, $url, true, $order, $tooltip); } /** * See {@link add()}. Adds a new menu item to the platform section of the admin menu. * @param string $menuName * @param array $url * @param int $order * @param bool|string $tooltip * @api * @since 2.5.0 */ public function addPlatformItem($menuName, $url, $order = 50, $tooltip = false) { $this->add('CorePluginsAdmin_MenuPlatform', $menuName, $url, true, $order, $tooltip); } /** * See {@link add()}. Adds a new menu item to the settings section of the admin menu. * @param string $menuName * @param array $url * @param int $order * @param bool|string $tooltip * @api * @since 2.5.0 */ public function addSettingsItem($menuName, $url, $order = 50, $tooltip = false) { $this->add('General_Settings', $menuName, $url, true, $order, $tooltip); } /** * See {@link add()}. Adds a new menu item to the manage section of the admin menu. * @param string $menuName * @param array $url * @param int $order * @param bool|string $tooltip * @api * @since 2.5.0 */ public function addManageItem($menuName, $url, $order = 50, $tooltip = false) { $this->add('CoreAdminHome_MenuManage', $menuName, $url, true, $order, $tooltip); } /** * Triggers the Menu.MenuAdmin.addItems hook and returns the admin menu. * * @return Array */ public function getMenu() { if (!$this->menu) { /** * @ignore * @deprecated */ Piwik::postEvent('Menu.Admin.addItems', array()); foreach ($this->getAllMenus() as $menu) { $menu->configureAdminMenu($this); } } return parent::getMenu(); } /** * Returns the current AdminMenu name * * @return boolean */ public function getCurrentAdminMenuName() { $menu = MenuAdmin::getInstance()->getMenu(); $currentModule = Piwik::getModule(); $currentAction = Piwik::getAction(); foreach ($menu as $submenu) { foreach ($submenu as $subMenuName => $parameters) { if (strpos($subMenuName, '_') !== 0 && $parameters['_url']['module'] == $currentModule && $parameters['_url']['action'] == $currentAction ) { return $subMenuName; } } } return false; } /** * @deprecated since version 2.4.0. See {@link Piwik\Plugin\Menu} for new implementation. */ public static function removeEntry($menuName, $subMenuName = false) { MenuAdmin::getInstance()->remove($menuName, $subMenuName); } }