update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit d885a4baa9
5833 changed files with 418860 additions and 226988 deletions

View file

@ -1,6 +1,6 @@
<?php
/**
* Piwik - Open source web analytics
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
@ -11,15 +11,15 @@ namespace Piwik\Menu;
use Piwik\Piwik;
/**
* Contains menu entries for the Admin menu. Plugins can subscribe to the
* {@hook Menu.Admin.addItems} event to add new pages to the admin menu.
*
* 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**
*
* // add a new page in an observer to Menu.Admin.addItems
* public function addAdminMenuItem()
*
* public function configureAdminMenu(MenuAdmin $menu)
* {
* MenuAdmin::getInstance()->add(
* $menu->add(
* 'MyPlugin_MyTranslatedAdminMenuCategory',
* 'MyPlugin_MyTranslatedAdminPageName',
* array('module' => 'MyPlugin', 'action' => 'index'),
@ -27,25 +27,79 @@ use Piwik\Piwik;
* $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.
* 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 static function addEntry($adminMenuName, $url, $displayedForCurrentUser = true, $order = 20)
public function addDevelopmentItem($menuName, $url, $order = 50, $tooltip = false)
{
self::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order);
$this->addItem('CoreAdminHome_MenuDevelopment', $menuName, $url, $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->addItem('CoreAdminHome_MenuDiagnostic', $menuName, $url, $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->addItem('CorePluginsAdmin_MenuPlatform', $menuName, $url, $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->addItem('General_Settings', $menuName, $url, $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->addItem('CoreAdminHome_Administration', $menuName, $url, $order, $tooltip);
}
/**
@ -58,56 +112,16 @@ class MenuAdmin extends MenuAbstract
if (!$this->menu) {
/**
* Triggered when collecting all available admin menu items. Subscribe to this event if you want
* to add one or more items to the Piwik admin menu.
*
* Menu items should be added via the {@link add()} method.
*
* **Example**
*
* use Piwik\Menu\MenuAdmin;
*
* public function addMenuItems()
* {
* MenuAdmin::getInstance()->add(
* 'MenuName',
* 'SubmenuName',
* array('module' => 'MyPlugin', 'action' => 'index'),
* $showOnlyIf = Piwik::hasUserSuperUserAccess(),
* $order = 6
* );
* }
* @ignore
* @deprecated
*/
Piwik::postEvent('Menu.Admin.addItems');
}
return parent::getMenu();
}
Piwik::postEvent('Menu.Admin.addItems', array());
/**
* 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;
}
foreach ($this->getAllMenus() as $menu) {
$menu->configureAdminMenu($this);
}
}
return false;
}
public static function removeEntry($menuName, $subMenuName = false)
{
MenuAdmin::getInstance()->remove($menuName, $subMenuName);
return parent::getMenu();
}
}