add( * 'MyPlugin_MyTranslatedMenuCategory', * 'MyPlugin_MyTranslatedMenuName', * array('module' => 'MyPlugin', 'action' => 'index'), * Piwik::isUserHasSomeAdminAccess(), * $order = 2 * ); * } * * @api * @method static \Piwik\Menu\MenuMain getInstance() */ class MenuMain extends MenuAbstract { /** * Returns if the URL was found in the menu. * * @param string $url * @return boolean */ public function isUrlFound($url) { $menu = MenuMain::getInstance()->getMenu(); foreach ($menu as $subMenus) { foreach ($subMenus as $subMenuName => $menuUrl) { if (strpos($subMenuName, '_') !== 0 && $menuUrl['_url'] == $url) { return true; } } } return false; } /** * Triggers the Menu.Reporting.addItems hook and returns the menu. * * @return Array */ public function getMenu() { // We trigger the Event only once! if (!$this->menu) { /** * Triggered when collecting all available reporting menu items. Subscribe to this event if you * want to add one or more items to the Piwik reporting menu. * * Menu items should be added via the {@link add()} method. * * **Example** * * use Piwik\Menu\Main; * * public function addMenuItems() * { * Main::getInstance()->add( * 'CustomMenuName', * 'CustomSubmenuName', * array('module' => 'MyPlugin', 'action' => 'index'), * $showOnlyIf = Piwik::hasUserSuperUserAccess(), * $order = 6 * ); * } */ Piwik::postEvent('Menu.Reporting.addItems'); } return parent::getMenu(); } }