Newer
Older
mattpiwik
a validé
<?php
/**
* Piwik - free/libre analytics platform
mattpiwik
a validé
* @link http://piwik.org
mattpiwik
a validé
*/
namespace Piwik\Menu;
mattpiwik
a validé
/**
* Contains menu entries for the Admin menu.
* Plugins can implement the `configureAdminMenu()` method of the `Menu` plugin class to add, rename of remove
* items. If your plugin does not have a `Menu` class yet you can create one using `./console generate:menu`.
*
* **Example**
*
* public function configureAdminMenu(MenuAdmin $menu)
* {
* 'MyPlugin_MyTranslatedAdminMenuCategory',
* 'MyPlugin_MyTranslatedAdminPageName',
* array('module' => 'MyPlugin', 'action' => 'index'),
* Piwik::isUserHasSomeAdminAccess(),
* $order = 2
* );
* }
*
mattpiwik
a validé
*/
class MenuAdmin extends MenuAbstract
mattpiwik
a validé
{
* 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.
Thomas Steur
a validé
* @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);
Thomas Steur
a validé
/**
Thomas Steur
a validé
* See {@link add()}. Adds a new menu item to the development section of the admin menu.
Thomas Steur
a validé
* @param string $menuName
* @param array $url
* @param int $order
Thomas Steur
a validé
* @param bool|string $tooltip
Thomas Steur
a validé
* @api
Thomas Steur
a validé
*/
public function addDevelopmentItem($menuName, $url, $order = 50, $tooltip = false)
{
$this->add('CoreAdminHome_MenuDevelopment', $menuName, $url, true, $order, $tooltip);
}
/**
Thomas Steur
a validé
* See {@link add()}. Adds a new menu item to the diagnostic section of the admin menu.
Thomas Steur
a validé
* @param string $menuName
* @param array $url
* @param int $order
Thomas Steur
a validé
* @param bool|string $tooltip
Thomas Steur
a validé
* @api
Thomas Steur
a validé
*/
public function addDiagnosticItem($menuName, $url, $order = 50, $tooltip = false)
{
$this->add('CoreAdminHome_MenuDiagnostic', $menuName, $url, true, $order, $tooltip);
}
/**
Thomas Steur
a validé
* See {@link add()}. Adds a new menu item to the platform section of the admin menu.
Thomas Steur
a validé
* @param string $menuName
* @param array $url
* @param int $order
Thomas Steur
a validé
* @param bool|string $tooltip
Thomas Steur
a validé
* @api
Thomas Steur
a validé
*/
public function addPlatformItem($menuName, $url, $order = 50, $tooltip = false)
{
$this->add('CorePluginsAdmin_MenuPlatform', $menuName, $url, true, $order, $tooltip);
}
/**
Thomas Steur
a validé
* See {@link add()}. Adds a new menu item to the settings section of the admin menu.
Thomas Steur
a validé
* @param string $menuName
* @param array $url
* @param int $order
Thomas Steur
a validé
* @param bool|string $tooltip
Thomas Steur
a validé
* @api
Thomas Steur
a validé
*/
public function addSettingsItem($menuName, $url, $order = 50, $tooltip = false)
{
$this->add('General_Settings', $menuName, $url, true, $order, $tooltip);
}
/**
Thomas Steur
a validé
* See {@link add()}. Adds a new menu item to the manage section of the admin menu.
Thomas Steur
a validé
* @param string $menuName
* @param array $url
* @param int $order
Thomas Steur
a validé
* @param bool|string $tooltip
Thomas Steur
a validé
* @api
Thomas Steur
a validé
*/
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
*/
{
if (!$this->menu) {
Thomas Steur
a validé
* @ignore
Thomas Steur
a validé
* @deprecated
Thomas Steur
a validé
Piwik::postEvent('Menu.Admin.addItems', array());
Thomas Steur
a validé
Thomas Steur
a validé
$menu->configureAdminMenu($this);
}
Thomas Steur
a validé
mattpiwik
a validé
/**
* 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;
Thomas Steur
a validé
* @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);