diff --git a/core/Menu/MenuAdmin.php b/core/Menu/MenuAdmin.php index 106420b7122eddd7acaf01a1252c204eda7807e5..ad4c6c410861102ff1466db9bd63397300aeed2f 100644 --- a/core/Menu/MenuAdmin.php +++ b/core/Menu/MenuAdmin.php @@ -48,6 +48,71 @@ class MenuAdmin extends MenuAbstract self::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); } + /** + * See {@link add()}. Adds a new menu item to the development section. + * @param string $menuName + * @param array $url + * @param int $order + * @param bool $tooltip + * @api + */ + 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 development section. + * @param string $menuName + * @param array $url + * @param int $order + * @param bool $tooltip + * @api + */ + 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 development section. + * @param string $menuName + * @param array $url + * @param int $order + * @param bool $tooltip + * @api + */ + 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 development section. + * @param string $menuName + * @param array $url + * @param int $order + * @param bool $tooltip + * @api + */ + 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 development section. + * @param string $menuName + * @param array $url + * @param int $order + * @param bool $tooltip + * @api + */ + 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. * diff --git a/plugins/CoreAdminHome/Menu.php b/plugins/CoreAdminHome/Menu.php index 0d9560569d23e6cf65e55845497f1771aca113dd..368a470fff5cd9e6ebc73214cacf9ed05fb162a3 100644 --- a/plugins/CoreAdminHome/Menu.php +++ b/plugins/CoreAdminHome/Menu.php @@ -20,21 +20,25 @@ class Menu extends \Piwik\Plugin\Menu { $hasAdminAccess = Piwik::isUserHasSomeAdminAccess(); - $menu->add('CoreAdminHome_MenuManage', null, "", $hasAdminAccess, $order = 1); - $menu->add('CoreAdminHome_MenuDiagnostic', null, "", $hasAdminAccess, $order = 10); - $menu->add('General_Settings', null, "", $hasAdminAccess, $order = 5); - $menu->add('General_Settings', 'CoreAdminHome_MenuGeneralSettings', - array('module' => 'CoreAdminHome', 'action' => 'generalSettings'), - $hasAdminAccess, - $order = 6); - $menu->add('CoreAdminHome_MenuManage', 'CoreAdminHome_TrackingCode', - array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'), - $hasAdminAccess, - $order = 4); - $menu->add('General_Settings', 'CoreAdminHome_PluginSettings', - array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'), - SettingsManager::hasPluginsSettingsForCurrentUser(), - $order = 7); + if ($hasAdminAccess) { + $menu->addManageItem(null, "", $order = 1); + $menu->addSettingsItem(null, "", $order = 5); + $menu->addDiagnosticItem(null, "", $order = 10); + $menu->addDevelopmentItem(null, "", $order = 15); + + $menu->addSettingsItem('CoreAdminHome_MenuGeneralSettings', + array('module' => 'CoreAdminHome', 'action' => 'generalSettings'), + $order = 6); + $menu->addManageItem('CoreAdminHome_TrackingCode', + array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'), + $order = 4); + } + + if (SettingsManager::hasPluginsSettingsForCurrentUser()) { + $menu->addSettingsItem('CoreAdminHome_PluginSettings', + array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'), + $order = 7); + } } } diff --git a/plugins/CorePluginsAdmin/Menu.php b/plugins/CorePluginsAdmin/Menu.php index 326596989bf447cd5b1023bbc257b26de6aef06e..3cd9dea086a39d636a92d54bd2a332080070aff5 100644 --- a/plugins/CorePluginsAdmin/Menu.php +++ b/plugins/CorePluginsAdmin/Menu.php @@ -39,21 +39,23 @@ class Menu extends \Piwik\Plugin\Menu } } - $menu->add('CorePluginsAdmin_MenuPlatform', null, "", !$isAnonymous, $order = 7); - $menu->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('General_Plugins') . $pluginsUpdateMessage, - array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''), - $hasSuperUserAcess, - $order = 1); - $menu->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('CorePluginsAdmin_Themes') . $themesUpdateMessage, - array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''), - $hasSuperUserAcess, - $order = 3); - - if ($isMarketplaceEnabled) { - $menu->add('CorePluginsAdmin_MenuPlatform', 'CorePluginsAdmin_Marketplace', - array('module' => 'CorePluginsAdmin', 'action' => 'extend', 'activated' => ''), - !$isAnonymous, - $order = 5); + if (!$isAnonymous) { + $menu->addPlatformItem(null, "", $order = 7); + } + + if ($hasSuperUserAcess) { + $menu->addPlatformItem(Piwik::translate('General_Plugins') . $pluginsUpdateMessage, + array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''), + $order = 1); + $menu->addPlatformItem(Piwik::translate('CorePluginsAdmin_Themes') . $themesUpdateMessage, + array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''), + $order = 3); + } + + if ($isMarketplaceEnabled && !$isAnonymous) { + $menu->addPlatformItem('CorePluginsAdmin_Marketplace', + array('module' => 'CorePluginsAdmin', 'action' => 'extend', 'activated' => ''), + $order = 5); } } diff --git a/plugins/DBStats/Menu.php b/plugins/DBStats/Menu.php index b39ff59ae5ddd2396379be35d684d9fd37ba4bad..50f7b8a047a19d3ee0ca8f4ffaa7d25171aaba48 100644 --- a/plugins/DBStats/Menu.php +++ b/plugins/DBStats/Menu.php @@ -17,9 +17,10 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add('CoreAdminHome_MenuDiagnostic', 'DBStats_DatabaseUsage', - array('module' => 'DBStats', 'action' => 'index'), - Piwik::hasUserSuperUserAccess(), - $order = 6); + if (Piwik::hasUserSuperUserAccess()) { + $menu->addDiagnosticItem('DBStats_DatabaseUsage', + array('module' => 'DBStats', 'action' => 'index'), + $order = 6); + } } } diff --git a/plugins/DevicesDetection/Menu.php b/plugins/DevicesDetection/Menu.php index c7ce8434b9a6742a3b2fa90e66234cee5d16805d..b956942d522ac82a01f4bac5e48efe74756f411e 100644 --- a/plugins/DevicesDetection/Menu.php +++ b/plugins/DevicesDetection/Menu.php @@ -18,12 +18,11 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add( - 'CoreAdminHome_MenuDiagnostic', 'DevicesDetection_DeviceDetection', - array('module' => 'DevicesDetection', 'action' => 'deviceDetection'), - Piwik::isUserHasSomeAdminAccess(), - $order = 40 - ); + if (Piwik::isUserHasSomeAdminAccess()) { + $menu->addDiagnosticItem('DevicesDetection_DeviceDetection', + array('module' => 'DevicesDetection', 'action' => 'deviceDetection'), + $order = 40); + } } public function configureReportingMenu(MenuReporting $menu) diff --git a/plugins/ExamplePlugin/Menu.php b/plugins/ExamplePlugin/Menu.php index ccebbdf4e38b902337100e64dbe33e920f00d304..1a4ed8300f2b93263012d33e2b93798cb36dd400 100644 --- a/plugins/ExamplePlugin/Menu.php +++ b/plugins/ExamplePlugin/Menu.php @@ -29,6 +29,12 @@ class Menu extends \Piwik\Plugin\Menu public function configureAdminMenu(MenuAdmin $menu) { // $menu->add('General_Settings', 'My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30); + // or + // $menu->addSettingsItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30); + // $menu->addManageItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30); + // $menu->addPlatformItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30); + // $menu->addDiagnosticItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30); + // $menu->addDevelopmentItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30); } public function configureTopMenu(MenuTop $menu) diff --git a/plugins/Installation/Menu.php b/plugins/Installation/Menu.php index 606f9da50c0192d67db033c4fc0becbf7ebd9c20..7ae25c8d79fe4888089a4a549b41fa69b4212ce1 100644 --- a/plugins/Installation/Menu.php +++ b/plugins/Installation/Menu.php @@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add('General_Settings', 'Installation_SystemCheck', - array('module' => 'Installation', 'action' => 'systemCheckPage'), - Piwik::hasUserSuperUserAccess(), - $order = 15); + if (Piwik::hasUserSuperUserAccess()) { + $menu->addSettingsItem('Installation_SystemCheck', + array('module' => 'Installation', 'action' => 'systemCheckPage'), + $order = 15); + } } } diff --git a/plugins/MobileMessaging/Menu.php b/plugins/MobileMessaging/Menu.php index 6a2ca2e1ff92db2fa0d92d188f40f9b9d78aabc8..4dea3c329d46ec38fc107a2a054817740cfffc3f 100644 --- a/plugins/MobileMessaging/Menu.php +++ b/plugins/MobileMessaging/Menu.php @@ -14,11 +14,9 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add( - 'General_Settings', + $menu->addSettingsItem( 'MobileMessaging_SettingsMenu', array('module' => 'MobileMessaging', 'action' => 'index'), - true, $order = 12 ); } diff --git a/plugins/PrivacyManager/Menu.php b/plugins/PrivacyManager/Menu.php index 3750dfaa616d94856579c857906bdb10be29d0ed..5eee77622c53b5b5f60b9d50ca8614450694336e 100644 --- a/plugins/PrivacyManager/Menu.php +++ b/plugins/PrivacyManager/Menu.php @@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add('General_Settings', 'PrivacyManager_MenuPrivacySettings', - array('module' => 'PrivacyManager', 'action' => 'privacySettings'), - Piwik::isUserHasSomeAdminAccess(), - $order = 7); + if (Piwik::isUserHasSomeAdminAccess()) { + $menu->addSettingsItem('PrivacyManager_MenuPrivacySettings', + array('module' => 'PrivacyManager', 'action' => 'privacySettings'), + $order = 7); + } } } diff --git a/plugins/SitesManager/Menu.php b/plugins/SitesManager/Menu.php index a2573d1f3e0bd07ef1d81c774ebe4ec702b9ee4c..017690f442727b1e49e6c29a68742b350dabd796 100644 --- a/plugins/SitesManager/Menu.php +++ b/plugins/SitesManager/Menu.php @@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add('CoreAdminHome_MenuManage', 'SitesManager_Sites', - array('module' => 'SitesManager', 'action' => 'index'), - Piwik::isUserHasSomeAdminAccess(), - $order = 1); + if (Piwik::isUserHasSomeAdminAccess()) { + $menu->addManageItem('SitesManager_Sites', + array('module' => 'SitesManager', 'action' => 'index'), + $order = 1); + } } } diff --git a/plugins/UserCountry/Menu.php b/plugins/UserCountry/Menu.php index dca224572338e17d2760a9474c7ffbc058363471..505ae68c978872c21277a5510a133bedd3f31c7b 100644 --- a/plugins/UserCountry/Menu.php +++ b/plugins/UserCountry/Menu.php @@ -16,11 +16,10 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - if (UserCountry::isGeoLocationAdminEnabled()) { - $menu->add('General_Settings', 'UserCountry_Geolocation', - array('module' => 'UserCountry', 'action' => 'adminIndex'), - Piwik::hasUserSuperUserAccess(), - $order = 8); + if (UserCountry::isGeoLocationAdminEnabled() && Piwik::hasUserSuperUserAccess()) { + $menu->addSettingsItem('UserCountry_Geolocation', + array('module' => 'UserCountry', 'action' => 'adminIndex'), + $order = 8); } } diff --git a/plugins/UsersManager/Menu.php b/plugins/UsersManager/Menu.php index 32ad96f4fb2b00117b816e030149175722d62cb1..494d09542c2ef21a518af4bee6f04abfc4c52843 100644 --- a/plugins/UsersManager/Menu.php +++ b/plugins/UsersManager/Menu.php @@ -15,13 +15,13 @@ class Menu extends \Piwik\Plugin\Menu { public function configureAdminMenu(MenuAdmin $menu) { - $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUsers', - array('module' => 'UsersManager', 'action' => 'index'), - Piwik::isUserHasSomeAdminAccess(), - $order = 2); - $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUserSettings', - array('module' => 'UsersManager', 'action' => 'userSettings'), - Piwik::isUserHasSomeViewAccess(), - $order = 3); + if (Piwik::isUserHasSomeAdminAccess()) { + $menu->addManageItem('UsersManager_MenuUsers', + array('module' => 'UsersManager', 'action' => 'index'), + $order = 2); + $menu->addManageItem('UsersManager_MenuUserSettings', + array('module' => 'UsersManager', 'action' => 'userSettings'), + $order = 3); + } } }