From f6d87baf3833a00c3747cd590d83d0e499d7c94e Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@googlemail.com> Date: Tue, 22 Jul 2014 08:49:54 +0200 Subject: [PATCH] refs #5192 simplified admin menu since it is very confusing for developers to find the correct translation key to use for menuName. Results in lots of dulicated code as well (same translation keys are mentioned everywhere). Also removed the $displayedForCurrentUsers in those methods since boolean parameters are bad practice and it did result in duplicated code as well as you had to call the same function or pass the same variable in each add() call. Moved the VisitorGenerator in a development section since it is not really diagnostic. There will be another development menu item with the next commit. Need to update ui tests --- core/Menu/MenuAdmin.php | 65 +++++++++++++++++++++++++++++++ plugins/CoreAdminHome/Menu.php | 34 +++++++++------- plugins/CorePluginsAdmin/Menu.php | 32 ++++++++------- plugins/DBStats/Menu.php | 9 +++-- plugins/DevicesDetection/Menu.php | 11 +++--- plugins/ExamplePlugin/Menu.php | 6 +++ plugins/Installation/Menu.php | 9 +++-- plugins/MobileMessaging/Menu.php | 4 +- plugins/PrivacyManager/Menu.php | 9 +++-- plugins/SitesManager/Menu.php | 9 +++-- plugins/UserCountry/Menu.php | 9 ++--- plugins/UsersManager/Menu.php | 16 ++++---- 12 files changed, 145 insertions(+), 68 deletions(-) diff --git a/core/Menu/MenuAdmin.php b/core/Menu/MenuAdmin.php index 106420b712..ad4c6c4108 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 0d9560569d..368a470fff 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 326596989b..3cd9dea086 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 b39ff59ae5..50f7b8a047 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 c7ce8434b9..b956942d52 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 ccebbdf4e3..1a4ed8300f 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 606f9da50c..7ae25c8d79 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 6a2ca2e1ff..4dea3c329d 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 3750dfaa61..5eee77622c 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 a2573d1f3e..017690f442 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 dca2245723..505ae68c97 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 32ad96f4fb..494d09542c 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); + } } } -- GitLab