diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-05-20 10:10:27 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-05-20 10:10:27 +0400 |
commit | 307ec31f2cfebd9c8bf9caba575e2864d42c8597 (patch) | |
tree | 2d6120c412b272344d204e9947fb3859bb7b3aa7 /plugins | |
parent | 45ae10e999baf0dfa066e5daae00bca824a68191 (diff) |
refs #5192 added generator for menus, updated more plugins to use menu class, fixed some bugs, improved design, fixed tests, ...
Diffstat (limited to 'plugins')
49 files changed, 606 insertions, 281 deletions
diff --git a/plugins/CoreConsole/Commands/GenerateMenu.php b/plugins/CoreConsole/Commands/GenerateMenu.php new file mode 100644 index 0000000000..18f2b4dd0e --- /dev/null +++ b/plugins/CoreConsole/Commands/GenerateMenu.php @@ -0,0 +1,58 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ + +namespace Piwik\Plugins\CoreConsole\Commands; + +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +/** + */ +class GenerateMenu extends GeneratePluginBase +{ + protected function configure() + { + $this->setName('generate:menu') + ->setDescription('Adds a plugin menu class to an existing plugin') + ->addOption('pluginname', null, InputOption::VALUE_REQUIRED, 'The name of an existing plugin which does not have a menu defined yet'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $pluginName = $this->getPluginName($input, $output); + + $exampleFolder = PIWIK_INCLUDE_PATH . '/plugins/ExamplePlugin'; + $replace = array('ExamplePlugin' => $pluginName); + $whitelistFiles = array('/Menu.php'); + + $this->copyTemplateToPlugin($exampleFolder, $pluginName, $replace, $whitelistFiles); + + $this->writeSuccessMessage($output, array( + sprintf('Menu.php for %s generated.', $pluginName), + 'You can now start defining your plugin menu', + 'Enjoy!' + )); + } + + /** + * @param InputInterface $input + * @param OutputInterface $output + * @return array + * @throws \RunTimeException + */ + protected function getPluginName(InputInterface $input, OutputInterface $output) + { + $pluginNames = $this->getPluginNamesHavingNotSpecificFile('Menu.php'); + $invalidName = 'You have to enter the name of an existing plugin which does not already have a menu defined'; + + return $this->askPluginNameAndValidate($input, $output, $pluginNames, $invalidName); + } + +} diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js b/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js index b599f40e70..68c6d5171d 100644 --- a/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js @@ -7,10 +7,11 @@ /** * Usage: - * <div piwik-menudropdown title="MyMenuItem"> - * <a class="item" href="/url"></a> - * <a class="item active">test</a> - * <a class="item disabled">-------</a> + * <div piwik-menudropdown menu-title="MyMenuItem"> + * <a class="item" href="/url">An Item</a> + * <a class="item disabled">Disabled</a> + * <a class="item active">Active item</a> + * <hr class="item separator"/> * <a class="item" href="/url"></a> * </div> */ @@ -21,7 +22,7 @@ angular.module('piwikApp').directive('piwikMenudropdown', function(){ replace: true, restrict: 'A', scope: { - title: '@' + menuTitle: '@' }, templateUrl: 'plugins/CoreHome/angularjs/menudropdown/menudropdown.html?cb=' + piwik.cacheBuster }; diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown.html b/plugins/CoreHome/angularjs/menudropdown/menudropdown.html index c7a4e715aa..539db4d99c 100644 --- a/plugins/CoreHome/angularjs/menudropdown/menudropdown.html +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown.html @@ -2,7 +2,7 @@ <span class="title" ng-click="view.showItems=!view.showItems" - >{{ title }}</span> + ng-bind-html="menuTitle"/> <div class="items" ng-show="view.showItems" ng-transclude></div> diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown.less b/plugins/CoreHome/angularjs/menudropdown/menudropdown.less index 941db9ac66..39d3352e89 100644 --- a/plugins/CoreHome/angularjs/menudropdown/menudropdown.less +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown.less @@ -28,8 +28,10 @@ .items { z-index: 21; position: absolute; - max-width: 200px; border: 1px solid @color-silver-l80 !important; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; background: @theme-color-background-base; max-height: 400px; overflow-y: auto; @@ -40,7 +42,7 @@ display: block; color: @theme-color-text !important; text-decoration: none !important; - padding: 1px 25px 1px 3px !important; + padding: 6px 25px 6px 6px !important; &:hover { background: @color-silver-l80; @@ -51,6 +53,13 @@ cursor: default; } + &.separator { + padding: 0px !important; + border-bottom: 0px; + margin: 0px; + } + + &.separator, &.disabled { opacity: 0.5; cursor: default; diff --git a/plugins/CoreHome/stylesheets/coreHome.less b/plugins/CoreHome/stylesheets/coreHome.less index ea2e0b228f..f10476568d 100644 --- a/plugins/CoreHome/stylesheets/coreHome.less +++ b/plugins/CoreHome/stylesheets/coreHome.less @@ -217,6 +217,11 @@ a.Piwik_Popover_Error_Back { } } +#userMenu .items { + margin-left: -105px; + width: 150px; +} + #updateCheckLinkContainer { opacity: 0.7; } diff --git a/plugins/CoreHome/templates/_topBarHelloMenu.twig b/plugins/CoreHome/templates/_topBarHelloMenu.twig index 90ca8161a3..89f1fcb52b 100644 --- a/plugins/CoreHome/templates/_topBarHelloMenu.twig +++ b/plugins/CoreHome/templates/_topBarHelloMenu.twig @@ -1,9 +1,9 @@ <div id="topRightBar"> {% set helloAlias %} {% if userAlias is not empty %} - {{ userAlias }} + {{ userAlias|raw }} {% else %} - {{ userLogin }} + {{ userLogin|raw }} {% endif %} {% endset %} @@ -21,7 +21,9 @@ {% endmacro %} <span class="topBarElem"> - <div title="{{ helloAlias|trim|raw }}" + <div id="userMenu" + title="{{ 'General_HelloUser'|translate(helloAlias|trim)|raw }}" + menu-title="{{ helloAlias|trim }}" piwik-menudropdown> {% if userLogin != 'anonymous' %} @@ -35,7 +37,7 @@ {% for lev1UserLabel,lev1UserMenu in userMenu if lev1UserLabel|slice(0,1) != '_' %} {% if userLogin != 'anonymous' or not loop.first %} - <span class="item disabled">--------</span> + <hr class="item separator"/> {% endif %} {% if lev1UserMenu._hasSubmenu is defined and lev1UserMenu._hasSubmenu %} diff --git a/plugins/DevicesDetection/Menu.php b/plugins/DevicesDetection/Menu.php index c67778a5b4..2b2f06ed78 100644 --- a/plugins/DevicesDetection/Menu.php +++ b/plugins/DevicesDetection/Menu.php @@ -26,7 +26,7 @@ class Menu extends \Piwik\Plugin\Menu ); } - public function configureReporingMenu(MenuReporting $menu) + public function configureReportingMenu(MenuReporting $menu) { $menu->add('General_Visitors', 'DevicesDetection_submenu', array('module' => 'DevicesDetection', 'action' => 'index')); } diff --git a/plugins/Events/Menu.php b/plugins/Events/Menu.php index 1a0585a5cd..78c9b0bc9b 100644 --- a/plugins/Events/Menu.php +++ b/plugins/Events/Menu.php @@ -14,7 +14,7 @@ use Piwik\Menu\MenuReporting; */ class Menu extends \Piwik\Plugin\Menu { - public function configureReporingMenu(MenuReporting $menu) + public function configureReportingMenu(MenuReporting $menu) { $menu->add('General_Actions', 'Events_Events', array('module' => 'Events', 'action' => 'index'), true, 30); } diff --git a/plugins/ExamplePlugin/Menu.php b/plugins/ExamplePlugin/Menu.php new file mode 100644 index 0000000000..de2b1ea9fb --- /dev/null +++ b/plugins/ExamplePlugin/Menu.php @@ -0,0 +1,43 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\ExamplePlugin; + +use Piwik\Menu\MenuAdmin; +use Piwik\Menu\MenuReporting; +use Piwik\Menu\MenuTop; +use Piwik\Menu\MenuUser; + +/** + * This class allows you to add, remove or rename menu items. + * To configure a menu (such as Admin Menu, Reporting Menu, User Menu...) simply call the corresponding methods as + * described in the API-Reference http://developer.piwik.org/api-reference/Piwik/Menu/MenuAbstract + */ +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + // $menu->add('UI Framework', '', array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30); + // $menu->add('UI Framework', 'Report 1', array('module' => 'ExamplePlugin', 'action' => 'report1'), true, $orderId = 30); + } + + public function configureAdminMenu(MenuAdmin $menu) + { + // $menu->add('General_Settings', 'My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30); + } + + public function configureTopMenu(MenuTop $menu) + { + // $menu->add('My Top Item', null, array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30); + } + + public function configureUserMenu(MenuUser $menu) + { + // $menu->add('CoreAdminHome_MenuManage', 'My User Item', array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30); + } +} diff --git a/plugins/ExampleUI/ExampleUI.php b/plugins/ExampleUI/Menu.php index d9204abca8..c2b61f6e2d 100644 --- a/plugins/ExampleUI/ExampleUI.php +++ b/plugins/ExampleUI/Menu.php @@ -6,28 +6,17 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later * */ - namespace Piwik\Plugins\ExampleUI; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; + +use Piwik\Menu\MenuReporting; use Piwik\Menu\MenuTop; +use Piwik\Plugin\Manager as PluginManager; /** */ -class ExampleUI extends \Piwik\Plugin +class Menu extends \Piwik\Plugin\Menu { - /** - * @see Piwik\Plugin::getListHooksRegistered - */ - public function getListHooksRegistered() - { - return array( - 'Menu.Reporting.addItems' => 'addReportingMenuItems', - 'Menu.Top.addItems' => 'addTopMenuItems', - ); - } - - function addReportingMenuItems(MenuAbstract $menu) + public function configureReportingMenu(MenuReporting $menu) { $menu->add('UI Framework', '', array('module' => 'ExampleUI', 'action' => 'dataTables'), true, 30); @@ -38,18 +27,18 @@ class ExampleUI extends \Piwik\Plugin $this->addSubMenu($menu, 'Sparklines', 'sparklines', 5); $this->addSubMenu($menu, 'Evolution Graph', 'evolutionGraph', 6); - if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('TreemapVisualization')) { + if (PluginManager::getInstance()->isPluginActivated('TreemapVisualization')) { $this->addSubMenu($menu, 'Treemap', 'treemap', 7); } } - function addTopMenuItems(MenuTop $menu) + public function configureTopMenu(MenuTop $menu) { $urlParams = array('module' => 'ExampleUI', 'action' => 'notifications'); - $menu->addEntry('UI Notifications', null, $urlParams, $displayedForCurrentUser = true, $order = 3); + $menu->add('UI Notifications', null, $urlParams, $displayedForCurrentUser = true, $order = 3); } - private function addSubMenu(MenuAbstract $menu, $subMenu, $action, $order) + private function addSubMenu(MenuReporting $menu, $subMenu, $action, $order) { $menu->add('UI Framework', $subMenu, array('module' => 'ExampleUI', 'action' => $action), true, $order); } diff --git a/plugins/Feedback/Menu.php b/plugins/Feedback/Menu.php index c41e9d783e..1b352a4b2a 100644 --- a/plugins/Feedback/Menu.php +++ b/plugins/Feedback/Menu.php @@ -11,8 +11,6 @@ namespace Piwik\Plugins\Feedback; use Piwik\Menu\MenuUser; use Piwik\Piwik; -/** - */ class Menu extends \Piwik\Plugin\Menu { public function configureUserMenu(MenuUser $menu) diff --git a/plugins/Goals/Goals.php b/plugins/Goals/Goals.php index eb037238f5..4631010d3e 100644 --- a/plugins/Goals/Goals.php +++ b/plugins/Goals/Goals.php @@ -11,8 +11,6 @@ namespace Piwik\Plugins\Goals; use Piwik\ArchiveProcessor; use Piwik\Common; use Piwik\Db; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; use Piwik\Site; @@ -106,7 +104,6 @@ class Goals extends \Piwik\Plugin 'API.getReportMetadata.end' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenus', 'SitesManager.deleteSite.end' => 'deleteSiteGoals', 'Goals.getReportsWithGoalMetrics' => 'getActualReportsWithGoalMetrics', 'ViewDataTable.configure' => 'configureViewDataTable', @@ -495,45 +492,6 @@ class Goals extends \Piwik\Plugin } } - function addMenus(MenuAbstract $menu) - { - $idSite = Common::getRequestVar('idSite', null, 'int'); - $goals = API::getInstance()->getGoals($idSite); - $mainGoalMenu = $this->getGoalCategoryName($idSite); - $site = new Site($idSite); - if (count($goals) == 0) { - $menu->add($mainGoalMenu, '', array('module' => 'Goals', - 'action' => ($site->isEcommerceEnabled() ? 'ecommerceReport' : 'addNewGoal'), - 'idGoal' => ($site->isEcommerceEnabled() ? Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER : null)), - true, - 25); - if ($site->isEcommerceEnabled()) { - $menu->add($mainGoalMenu, 'Goals_Ecommerce', array('module' => 'Goals', 'action' => 'ecommerceReport', 'idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER), true, 1); - } - $menu->add($mainGoalMenu, 'Goals_AddNewGoal', array('module' => 'Goals', 'action' => 'addNewGoal')); - } else { - $menu->add($mainGoalMenu, '', array('module' => 'Goals', - 'action' => ($site->isEcommerceEnabled() ? 'ecommerceReport' : 'index'), - 'idGoal' => ($site->isEcommerceEnabled() ? Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER : null)), - true, - 25); - - if ($site->isEcommerceEnabled()) { - $menu->add($mainGoalMenu, 'Goals_Ecommerce', array('module' => 'Goals', 'action' => 'ecommerceReport', 'idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER), true, 1); - } - $menu->add($mainGoalMenu, 'Goals_GoalsOverview', array('module' => 'Goals', 'action' => 'index'), true, 2); - foreach ($goals as $goal) { - $menu->add($mainGoalMenu, str_replace('%', '%%', Translate::clean($goal['name'])), array('module' => 'Goals', 'action' => 'goalReport', 'idGoal' => $goal['idgoal'])); - } - } - } - - protected function getGoalCategoryName($idSite) - { - $site = new Site($idSite); - return $site->isEcommerceEnabled() ? 'Goals_EcommerceAndGoalsMenu' : 'Goals_Goals'; - } - public function configureViewDataTable(ViewDataTable $view) { switch ($view->requestConfig->apiMethodToRequestDataTable) { diff --git a/plugins/Goals/Menu.php b/plugins/Goals/Menu.php new file mode 100644 index 0000000000..e31952c578 --- /dev/null +++ b/plugins/Goals/Menu.php @@ -0,0 +1,69 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Goals; + +use Piwik\Common; +use Piwik\Menu\MenuReporting; +use Piwik\Piwik; +use Piwik\Site; +use Piwik\Translate; + +/** + */ +class Menu extends \Piwik\Plugin\Menu +{ + + public function configureReportingMenu(MenuReporting $menu) + { + $idSite = Common::getRequestVar('idSite', null, 'int'); + $goals = API::getInstance()->getGoals($idSite); + $mainGoalMenu = $this->getGoalCategoryName($idSite); + + $site = new Site($idSite); + + if (count($goals) == 0) { + + $menu->add($mainGoalMenu, '', array('module' => 'Goals', + 'action' => ($site->isEcommerceEnabled() ? 'ecommerceReport' : 'addNewGoal'), + 'idGoal' => ($site->isEcommerceEnabled() ? Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER : null)), + true, + 25); + + if ($site->isEcommerceEnabled()) { + $menu->add($mainGoalMenu, 'Goals_Ecommerce', array('module' => 'Goals', 'action' => 'ecommerceReport', 'idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER), true, 1); + } + + $menu->add($mainGoalMenu, 'Goals_AddNewGoal', array('module' => 'Goals', 'action' => 'addNewGoal')); + + } else { + + $menu->add($mainGoalMenu, '', array('module' => 'Goals', + 'action' => ($site->isEcommerceEnabled() ? 'ecommerceReport' : 'index'), + 'idGoal' => ($site->isEcommerceEnabled() ? Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER : null)), + true, + 25); + + if ($site->isEcommerceEnabled()) { + $menu->add($mainGoalMenu, 'Goals_Ecommerce', array('module' => 'Goals', 'action' => 'ecommerceReport', 'idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER), true, 1); + } + + $menu->add($mainGoalMenu, 'Goals_GoalsOverview', array('module' => 'Goals', 'action' => 'index'), true, 2); + + foreach ($goals as $goal) { + $menu->add($mainGoalMenu, str_replace('%', '%%', Translate::clean($goal['name'])), array('module' => 'Goals', 'action' => 'goalReport', 'idGoal' => $goal['idgoal'])); + } + } + } + + private function getGoalCategoryName($idSite) + { + $site = new Site($idSite); + return $site->isEcommerceEnabled() ? 'Goals_EcommerceAndGoalsMenu' : 'Goals_Goals'; + } +} diff --git a/plugins/Installation/Installation.php b/plugins/Installation/Installation.php index 652d3b117f..8d704efc4c 100644 --- a/plugins/Installation/Installation.php +++ b/plugins/Installation/Installation.php @@ -31,7 +31,6 @@ class Installation extends \Piwik\Plugin 'Config.NoConfigurationFile' => 'dispatch', 'Config.badConfigurationFile' => 'dispatch', 'Request.dispatch' => 'dispatchIfNotInstalledYet', - 'Menu.Admin.addItems' => 'addMenu', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', ); return $hooks; @@ -93,17 +92,6 @@ class Installation extends \Piwik\Plugin } /** - * Adds the 'System Check' admin page if the user is the Super User. - */ - public function addMenu(MenuAbstract $menu) - { - $menu->add('General_Settings', 'Installation_SystemCheck', - array('module' => 'Installation', 'action' => 'systemCheckPage'), - Piwik::hasUserSuperUserAccess(), - $order = 15); - } - - /** * Adds CSS files to list of CSS files for asset manager. */ public function getStylesheetFiles(&$stylesheets) diff --git a/plugins/Installation/Menu.php b/plugins/Installation/Menu.php new file mode 100644 index 0000000000..6637a1774b --- /dev/null +++ b/plugins/Installation/Menu.php @@ -0,0 +1,23 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Installation; + +use Piwik\Menu\MenuAdmin; +use Piwik\Piwik; + +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); + } +} diff --git a/plugins/LanguagesManager/LanguagesManager.php b/plugins/LanguagesManager/LanguagesManager.php index 122a3eedcf..f914b1d1a6 100644 --- a/plugins/LanguagesManager/LanguagesManager.php +++ b/plugins/LanguagesManager/LanguagesManager.php @@ -15,9 +15,7 @@ use Piwik\Config; use Piwik\Cookie; use Piwik\Db; use Piwik\DbHelper; -use Piwik\Menu\MenuTop; use Piwik\Piwik; -use Piwik\SettingsPiwik; use Piwik\Translate; use Piwik\View; @@ -34,7 +32,6 @@ class LanguagesManager extends \Piwik\Plugin return array( 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'Menu.Top.addItems' => 'showLanguagesSelector', 'User.getLanguage' => 'getLanguageToLoad', 'UsersManager.deleteUser' => 'deleteUserLanguage', 'Template.topBar' => 'addLanguagesManagerToOtherTopBar', @@ -52,13 +49,6 @@ class LanguagesManager extends \Piwik\Plugin $jsFiles[] = "plugins/LanguagesManager/javascripts/languageSelector.js"; } - public function showLanguagesSelector(MenuTop $menu) - { - if (Piwik::isUserIsAnonymous() || !SettingsPiwik::isPiwikInstalled()) { - $menu->addHtml('LanguageSelector', $this->getLanguagesSelector(), true, $order = 30, false); - } - } - /** * Adds the languages drop-down list to topbars other than the main one rendered * in CoreHome/templates/top_bar.twig. The 'other' topbars are on the Installation @@ -88,7 +78,7 @@ class LanguagesManager extends \Piwik\Plugin * * @return string */ - private function getLanguagesSelector() + public function getLanguagesSelector() { $view = new View("@LanguagesManager/getLanguagesSelector"); $view->languages = API::getInstance()->getAvailableLanguageNames(); diff --git a/plugins/LanguagesManager/Menu.php b/plugins/LanguagesManager/Menu.php new file mode 100644 index 0000000000..06b82f1e93 --- /dev/null +++ b/plugins/LanguagesManager/Menu.php @@ -0,0 +1,24 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\LanguagesManager; + +use Piwik\Menu\MenuTop; +use Piwik\Piwik; +use Piwik\SettingsPiwik; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureTopMenu(MenuTop $menu) + { + if (Piwik::isUserIsAnonymous() || !SettingsPiwik::isPiwikInstalled()) { + $langManager = new LanguagesManager(); + $menu->addHtml('LanguageSelector', $langManager->getLanguagesSelector(), true, $order = 30, false); + } + } +} diff --git a/plugins/Live/Live.php b/plugins/Live/Live.php index e6c6b1c745..baec9fe3cc 100644 --- a/plugins/Live/Live.php +++ b/plugins/Live/Live.php @@ -30,7 +30,6 @@ class Live extends \Piwik\Plugin 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'WidgetsList.addWidgets' => 'addWidget', - 'Menu.Reporting.addItems' => 'addMenu', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', 'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable' ); @@ -49,11 +48,6 @@ class Live extends \Piwik\Plugin $jsFiles[] = "plugins/Live/javascripts/visitorLog.js"; } - public function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'Live_VisitorLog', array('module' => 'Live', 'action' => 'indexVisitorLog'), true, $order = 5); - } - public function addWidget() { WidgetsList::add('Live!', 'Live_VisitorsInRealTime', 'Live', 'widget'); diff --git a/plugins/Live/Menu.php b/plugins/Live/Menu.php new file mode 100644 index 0000000000..7fbc3f4b78 --- /dev/null +++ b/plugins/Live/Menu.php @@ -0,0 +1,19 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Live; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'Live_VisitorLog', array('module' => 'Live', 'action' => 'indexVisitorLog'), true, $order = 5); + } +} diff --git a/plugins/MobileMessaging/Menu.php b/plugins/MobileMessaging/Menu.php new file mode 100644 index 0000000000..fa38d0c791 --- /dev/null +++ b/plugins/MobileMessaging/Menu.php @@ -0,0 +1,25 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\MobileMessaging; + +use Piwik\Menu\MenuAdmin; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureAdminMenu(MenuAdmin $menu) + { + $menu->add( + 'General_Settings', + 'MobileMessaging_SettingsMenu', + array('module' => 'MobileMessaging', 'action' => 'index'), + true, + $order = 12 + ); + } +} diff --git a/plugins/MobileMessaging/MobileMessaging.php b/plugins/MobileMessaging/MobileMessaging.php index d5a52417c7..591c19d732 100644 --- a/plugins/MobileMessaging/MobileMessaging.php +++ b/plugins/MobileMessaging/MobileMessaging.php @@ -8,7 +8,6 @@ */ namespace Piwik\Plugins\MobileMessaging; -use Piwik\Menu\MenuAbstract; use Piwik\Option; use Piwik\Piwik; use Piwik\Plugins\API\API as APIPlugins; @@ -66,7 +65,6 @@ class MobileMessaging extends \Piwik\Plugin public function getListHooksRegistered() { return array( - 'Menu.Admin.addItems' => 'addMenu', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'ScheduledReports.getReportParameters' => 'getReportParameters', @@ -82,15 +80,6 @@ class MobileMessaging extends \Piwik\Plugin ); } - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Settings', 'MobileMessaging_SettingsMenu', - array('module' => 'MobileMessaging', 'action' => 'index'), - true, - $order = 12 - ); - } - /** * Get JavaScript files */ diff --git a/plugins/MultiSites/Menu.php b/plugins/MultiSites/Menu.php new file mode 100644 index 0000000000..c20fe8ded4 --- /dev/null +++ b/plugins/MultiSites/Menu.php @@ -0,0 +1,23 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\MultiSites; + +use Piwik\Menu\MenuTop; +use Piwik\Piwik; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureTopMenu(MenuTop $menu) + { + $urlParams = array('module' => 'MultiSites', 'action' => 'index', 'segment' => false); + $tooltip = Piwik::translate('MultiSites_TopLinkTooltip'); + + $menu->add('General_MultiSitesSummary', null, $urlParams, true, 3, $tooltip); + } +} diff --git a/plugins/MultiSites/MultiSites.php b/plugins/MultiSites/MultiSites.php index 6b4dc9d082..f735e1d432 100644 --- a/plugins/MultiSites/MultiSites.php +++ b/plugins/MultiSites/MultiSites.php @@ -7,7 +7,7 @@ * */ namespace Piwik\Plugins\MultiSites; -use Piwik\Menu\MenuTop; + use Piwik\Piwik; @@ -31,7 +31,6 @@ class MultiSites extends \Piwik\Plugin return array( 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'Menu.Top.addItems' => 'addTopMenu', 'API.getReportMetadata' => 'getReportMetadata', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', ); @@ -93,13 +92,6 @@ class MultiSites extends \Piwik\Plugin ); } - public function addTopMenu(MenuTop $menu) - { - $urlParams = array('module' => 'MultiSites', 'action' => 'index', 'segment' => false); - $tooltip = Piwik::translate('MultiSites_TopLinkTooltip'); - $menu->add('General_MultiSitesSummary', null, $urlParams, true, 3, $tooltip); - } - public function getJsFiles(&$jsFiles) { $jsFiles[] = "plugins/MultiSites/angularjs/dashboard/dashboard-model.js"; diff --git a/plugins/PrivacyManager/Menu.php b/plugins/PrivacyManager/Menu.php new file mode 100644 index 0000000000..c8c38aec0a --- /dev/null +++ b/plugins/PrivacyManager/Menu.php @@ -0,0 +1,23 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\PrivacyManager; + +use Piwik\Menu\MenuAdmin; +use Piwik\Piwik; + +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); + } +} diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php index a0cb2017b6..8f0995fb50 100644 --- a/plugins/PrivacyManager/PrivacyManager.php +++ b/plugins/PrivacyManager/PrivacyManager.php @@ -13,12 +13,10 @@ use Piwik\Config as PiwikConfig; use Piwik\DataTable\DataTableInterface; use Piwik\Date; use Piwik\Db; -use Piwik\Menu\MenuAbstract; use Piwik\Metrics; use Piwik\Option; use Piwik\Period; use Piwik\Period\Range; -use Piwik\Piwik; use Piwik\Plugins\Goals\Archiver; use Piwik\ScheduledTask; use Piwik\ScheduledTime; @@ -139,7 +137,6 @@ class PrivacyManager extends \Piwik\Plugin { return array( 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'Menu.Admin.addItems' => 'addMenu', 'TaskScheduler.getScheduledTasks' => 'getScheduledTasks', 'Tracker.setTrackerCacheGeneral' => 'setTrackerCacheGeneral', 'Tracker.isExcludedVisit' => array($this->dntChecker, 'checkHeaderInTracker'), @@ -174,14 +171,6 @@ class PrivacyManager extends \Piwik\Plugin $jsFiles[] = "plugins/PrivacyManager/javascripts/privacySettings.js"; } - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Settings', 'PrivacyManager_MenuPrivacySettings', - array('module' => 'PrivacyManager', 'action' => 'privacySettings'), - Piwik::isUserHasSomeAdminAccess(), - $order = 7); - } - /** * Returns the settings for the data purging feature. * diff --git a/plugins/Provider/Menu.php b/plugins/Provider/Menu.php new file mode 100644 index 0000000000..77cbe89194 --- /dev/null +++ b/plugins/Provider/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Provider; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->rename('General_Visitors', 'UserCountry_SubmenuLocations', + 'General_Visitors', 'Provider_SubmenuLocationsProvider'); + } +} diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php index 10c2fe5bde..9cac22e303 100644 --- a/plugins/Provider/Provider.php +++ b/plugins/Provider/Provider.php @@ -14,8 +14,6 @@ use Piwik\Common; use Piwik\Db; use Piwik\FrontController; use Piwik\IP; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig; @@ -34,7 +32,6 @@ class Provider extends \Piwik\Plugin $hooks = array( 'Tracker.newVisitorInformation' => 'enrichVisitWithProviderInfo', 'WidgetsList.addWidgets' => 'addWidget', - 'Menu.Reporting.addItems' => 'addMenu', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', 'ViewDataTable.configure' => 'configureViewDataTable', @@ -94,12 +91,6 @@ class Provider extends \Piwik\Plugin WidgetsList::add('General_Visitors', 'Provider_WidgetProviders', 'Provider', 'getProvider'); } - public function addMenu(MenuAbstract $menu) - { - $menu->rename('General_Visitors', 'UserCountry_SubmenuLocations', - 'General_Visitors', 'Provider_SubmenuLocationsProvider'); - } - public function postLoad() { Piwik::addAction('Template.footerUserCountry', array('Piwik\Plugins\Provider\Provider', 'footerUserCountry')); diff --git a/plugins/Referrers/Menu.php b/plugins/Referrers/Menu.php new file mode 100644 index 0000000000..97efa7b44a --- /dev/null +++ b/plugins/Referrers/Menu.php @@ -0,0 +1,23 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Referrers; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('Referrers_Referrers', '', array('module' => 'Referrers', 'action' => 'index'), true, 20); + $menu->add('Referrers_Referrers', 'General_Overview', array('module' => 'Referrers', 'action' => 'index'), true, 1); + $menu->add('Referrers_Referrers', 'Referrers_SubmenuSearchEngines', array('module' => 'Referrers', 'action' => 'getSearchEnginesAndKeywords'), true, 2); + $menu->add('Referrers_Referrers', 'Referrers_SubmenuWebsites', array('module' => 'Referrers', 'action' => 'indexWebsites'), true, 3); + $menu->add('Referrers_Referrers', 'Referrers_Campaigns', array('module' => 'Referrers', 'action' => 'indexCampaigns'), true, 4); + } +} diff --git a/plugins/Referrers/Referrers.php b/plugins/Referrers/Referrers.php index c24946e029..30b01bb21d 100644 --- a/plugins/Referrers/Referrers.php +++ b/plugins/Referrers/Referrers.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\Referrers; use Piwik\ArchiveProcessor; use Piwik\Common; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable; @@ -36,7 +34,6 @@ class Referrers extends \Piwik\Plugin { $hooks = array( 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenus', 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', @@ -247,18 +244,6 @@ class Referrers extends \Piwik\Plugin } /** - * Adds Web Analytics menus - */ - function addMenus(MenuAbstract $menu) - { - $menu->add('Referrers_Referrers', '', array('module' => 'Referrers', 'action' => 'index'), true, 20); - $menu->add('Referrers_Referrers', 'General_Overview', array('module' => 'Referrers', 'action' => 'index'), true, 1); - $menu->add('Referrers_Referrers', 'Referrers_SubmenuSearchEngines', array('module' => 'Referrers', 'action' => 'getSearchEnginesAndKeywords'), true, 2); - $menu->add('Referrers_Referrers', 'Referrers_SubmenuWebsites', array('module' => 'Referrers', 'action' => 'indexWebsites'), true, 3); - $menu->add('Referrers_Referrers', 'Referrers_Campaigns', array('module' => 'Referrers', 'action' => 'indexCampaigns'), true, 4); - } - - /** * Adds Goal dimensions, so that the dimensions are displayed in the UI Goal Overview page */ public function getReportsWithGoalMetrics(&$dimensions) diff --git a/plugins/ScheduledReports/Menu.php b/plugins/ScheduledReports/Menu.php index 7d9f180062..b70782ac63 100644 --- a/plugins/ScheduledReports/Menu.php +++ b/plugins/ScheduledReports/Menu.php @@ -15,6 +15,9 @@ use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging; class Menu extends \Piwik\Plugin\Menu { + const MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY = 'MobileMessaging_TopMenu'; + const PDF_REPORTS_TOP_MENU_TRANSLATION_KEY = 'ScheduledReports_EmailReports'; + public function configureUserMenu(MenuUser $menu) { $tooltip = Piwik::translate( @@ -35,10 +38,10 @@ class Menu extends \Piwik\Plugin\Menu { // if MobileMessaging is not activated, display 'Email reports' if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging')) - return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; if (Piwik::isUserIsAnonymous()) { - return ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; + return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; } try { @@ -50,13 +53,12 @@ class Menu extends \Piwik\Plugin\Menu // - configured: display 'Email & SMS reports' if ($reportCount == 0) { return APIMobileMessaging::getInstance()->areSMSAPICredentialProvided() ? - ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY : ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY : self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; } } catch(\Exception $e) { - return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; } - $anyMobileReport = false; foreach ($reports as $report) { if ($report['type'] == MobileMessaging::MOBILE_TYPE) { @@ -67,10 +69,10 @@ class Menu extends \Piwik\Plugin\Menu // if there is at least one sms report, display 'Email & SMS reports' if ($anyMobileReport) { - return ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; + return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; } - return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; } } diff --git a/plugins/ScheduledReports/ScheduledReports.php b/plugins/ScheduledReports/ScheduledReports.php index afb0e7a22c..14f662724d 100644 --- a/plugins/ScheduledReports/ScheduledReports.php +++ b/plugins/ScheduledReports/ScheduledReports.php @@ -29,8 +29,6 @@ use Zend_Mime; */ class ScheduledReports extends \Piwik\Plugin { - const MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY = 'MobileMessaging_TopMenu'; - const PDF_REPORTS_TOP_MENU_TRANSLATION_KEY = 'ScheduledReports_EmailReports'; const DISPLAY_FORMAT_GRAPHS_ONLY_FOR_KEY_METRICS = 1; // Display Tables Only (Graphs only for key metrics) const DISPLAY_FORMAT_GRAPHS_ONLY = 2; // Display Graphs Only for all reports diff --git a/plugins/SitesManager/Menu.php b/plugins/SitesManager/Menu.php new file mode 100644 index 0000000000..0a991559f4 --- /dev/null +++ b/plugins/SitesManager/Menu.php @@ -0,0 +1,23 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\SitesManager; + +use Piwik\Menu\MenuAdmin; +use Piwik\Piwik; + +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); + } +} diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php index 5417246b97..ac0d14a58e 100644 --- a/plugins/SitesManager/SitesManager.php +++ b/plugins/SitesManager/SitesManager.php @@ -8,9 +8,6 @@ */ namespace Piwik\Plugins\SitesManager; -use Piwik\Menu\MenuAbstract; -use Piwik\Piwik; - /** * */ @@ -28,20 +25,11 @@ class SitesManager extends \Piwik\Plugin return array( 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', - 'Menu.Admin.addItems' => 'addMenu', 'Tracker.Cache.getSiteAttributes' => 'recordWebsiteDataInCache', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', ); } - function addMenu(MenuAbstract $menu) - { - $menu->add('CoreAdminHome_MenuManage', 'SitesManager_Sites', - array('module' => 'SitesManager', 'action' => 'index'), - Piwik::isUserHasSomeAdminAccess(), - $order = 1); - } - /** * Get CSS files */ diff --git a/plugins/UserCountry/Menu.php b/plugins/UserCountry/Menu.php new file mode 100644 index 0000000000..ee0bf08e61 --- /dev/null +++ b/plugins/UserCountry/Menu.php @@ -0,0 +1,31 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\UserCountry; + +use Piwik\Menu\MenuAdmin; +use Piwik\Menu\MenuReporting; +use Piwik\Piwik; + +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); + } + } + + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'UserCountry_SubmenuLocations', array('module' => 'UserCountry', 'action' => 'index')); + } +} diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php index 0464cbfaf2..fae65284ac 100644 --- a/plugins/UserCountry/UserCountry.php +++ b/plugins/UserCountry/UserCountry.php @@ -12,7 +12,6 @@ use Piwik\ArchiveProcessor; use Piwik\Common; use Piwik\Config; use Piwik\IP; -use Piwik\Menu\MenuAbstract; use Piwik\Piwik; use Piwik\Plugin\Manager; use Piwik\Plugin\ViewDataTable; @@ -40,8 +39,6 @@ class UserCountry extends \Piwik\Plugin { $hooks = array( 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', - 'Menu.Admin.addItems' => 'addAdminMenu', 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', @@ -193,24 +190,6 @@ class UserCountry extends \Piwik\Plugin WidgetsList::add('General_Visitors', $widgetCityLabel, 'UserCountry', 'getCity'); } - public function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'UserCountry_SubmenuLocations', array('module' => 'UserCountry', 'action' => 'index')); - } - - /** - * Event handler. Adds menu items to the MenuAdmin menu. - */ - public function addAdminMenu(MenuAbstract $menu) - { - if($this->isGeoLocationAdminEnabled()) { - $menu->add('General_Settings', 'UserCountry_Geolocation', - array('module' => 'UserCountry', 'action' => 'adminIndex'), - Piwik::hasUserSuperUserAccess(), - $order = 8); - } - } - public function getSegmentsMetadata(&$segments) { $segments[] = array( diff --git a/plugins/UserCountryMap/Menu.php b/plugins/UserCountryMap/Menu.php new file mode 100644 index 0000000000..63dd1801c3 --- /dev/null +++ b/plugins/UserCountryMap/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\UserCountryMap; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'UserCountryMap_RealTimeMap', + array('module' => 'UserCountryMap', 'action' => 'realtimeWorldMap'), true, $order = 70); + } +} diff --git a/plugins/UserCountryMap/UserCountryMap.php b/plugins/UserCountryMap/UserCountryMap.php index eef7af7e84..dd1360de7f 100644 --- a/plugins/UserCountryMap/UserCountryMap.php +++ b/plugins/UserCountryMap/UserCountryMap.php @@ -9,8 +9,6 @@ namespace Piwik\Plugins\UserCountryMap; use Piwik\FrontController; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Version; use Piwik\WidgetsList; @@ -52,18 +50,11 @@ class UserCountryMap extends \Piwik\Plugin { $hooks = array( 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', - 'Menu.Reporting.addItems' => 'addMenu' + 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles' ); return $hooks; } - public function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'UserCountryMap_RealTimeMap', - array('module' => 'UserCountryMap', 'action' => 'realtimeWorldMap'), true, $order = 70); - } - public function getJsFiles(&$jsFiles) { $jsFiles[] = "plugins/UserCountryMap/javascripts/vendor/raphael.min.js"; diff --git a/plugins/UserSettings/Menu.php b/plugins/UserSettings/Menu.php new file mode 100644 index 0000000000..e4b9309927 --- /dev/null +++ b/plugins/UserSettings/Menu.php @@ -0,0 +1,19 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\UserSettings; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'General_Settings', array('module' => 'UserSettings', 'action' => 'index')); + } +} diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php index 75da403f6e..13b3c4f66a 100644 --- a/plugins/UserSettings/UserSettings.php +++ b/plugins/UserSettings/UserSettings.php @@ -8,8 +8,6 @@ */ namespace Piwik\Plugins\UserSettings; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; use Piwik\Plugins\CoreVisualizations\Visualizations\Graph; @@ -167,7 +165,6 @@ class UserSettings extends \Piwik\Plugin { $hooks = array( 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', 'ViewDataTable.configure' => 'configureViewDataTable', @@ -459,12 +456,4 @@ class UserSettings extends \Piwik\Plugin } } - /** - * Adds the User Settings menu - */ - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'General_Settings', array('module' => 'UserSettings', 'action' => 'index')); - } - } diff --git a/plugins/UsersManager/Menu.php b/plugins/UsersManager/Menu.php new file mode 100644 index 0000000000..d663093852 --- /dev/null +++ b/plugins/UsersManager/Menu.php @@ -0,0 +1,27 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\UsersManager; + +use Piwik\Menu\MenuAdmin; +use Piwik\Piwik; + +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); + } +} diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php index 66e0765cd9..b860aeb186 100644 --- a/plugins/UsersManager/UsersManager.php +++ b/plugins/UsersManager/UsersManager.php @@ -10,7 +10,6 @@ namespace Piwik\Plugins\UsersManager; use Exception; use Piwik\Db; -use Piwik\Menu\MenuAbstract; use Piwik\Option; use Piwik\Piwik; use Piwik\SettingsPiwik; @@ -30,7 +29,6 @@ class UsersManager extends \Piwik\Plugin public function getListHooksRegistered() { return array( - 'Menu.Admin.addItems' => 'addMenu', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'SitesManager.deleteSite.end' => 'deleteSite', @@ -95,21 +93,6 @@ class UsersManager extends \Piwik\Plugin } /** - * Add admin menu items - */ - public function addMenu(MenuAbstract $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); - } - - /** * Returns true if the password is complex enough (at least 6 characters and max 26 characters) * * @param $input string diff --git a/plugins/VisitFrequency/Menu.php b/plugins/VisitFrequency/Menu.php new file mode 100644 index 0000000000..1c8682d5a9 --- /dev/null +++ b/plugins/VisitFrequency/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\VisitFrequency; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'VisitFrequency_SubmenuFrequency', + array('module' => 'VisitFrequency', 'action' => 'index'), true, $order = 55); + } +} diff --git a/plugins/VisitFrequency/VisitFrequency.php b/plugins/VisitFrequency/VisitFrequency.php index 6f1b27c48c..dbc2346d1c 100644 --- a/plugins/VisitFrequency/VisitFrequency.php +++ b/plugins/VisitFrequency/VisitFrequency.php @@ -8,8 +8,6 @@ */ namespace Piwik\Plugins\VisitFrequency; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\WidgetsList; @@ -25,7 +23,6 @@ class VisitFrequency extends \Piwik\Plugin { $hooks = array( 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', 'API.getReportMetadata' => 'getReportMetadata', ); return $hooks; @@ -62,10 +59,4 @@ class VisitFrequency extends \Piwik\Plugin WidgetsList::add('General_Visitors', 'VisitFrequency_WidgetGraphReturning', 'VisitFrequency', 'getEvolutionGraph', array('columns' => array('nb_visits_returning'))); } - - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'VisitFrequency_SubmenuFrequency', - array('module' => 'VisitFrequency', 'action' => 'index'), true, $order = 55); - } } diff --git a/plugins/VisitTime/Menu.php b/plugins/VisitTime/Menu.php new file mode 100644 index 0000000000..b0cd93248c --- /dev/null +++ b/plugins/VisitTime/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\VisitTime; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', 'VisitTime_SubmenuTimes', + array('module' => 'VisitTime', 'action' => 'index'), true, $order = 65); + } +} diff --git a/plugins/VisitTime/VisitTime.php b/plugins/VisitTime/VisitTime.php index bb93f0903f..f675a2599f 100644 --- a/plugins/VisitTime/VisitTime.php +++ b/plugins/VisitTime/VisitTime.php @@ -11,8 +11,6 @@ namespace Piwik\Plugins\VisitTime; use Exception; use Piwik\ArchiveProcessor; use Piwik\Common; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Period; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; @@ -33,7 +31,6 @@ class VisitTime extends \Piwik\Plugin { $hooks = array( 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', 'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata', @@ -86,12 +83,6 @@ class VisitTime extends \Piwik\Plugin WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitTime_VisitsByDayOfWeek', 'VisitTime', 'getByDayOfWeek'); } - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', 'VisitTime_SubmenuTimes', - array('module' => 'VisitTime', 'action' => 'index'), true, $order = 65); - } - public function getReportsWithGoalMetrics(&$dimensions) { $dimensions[] = array('category' => Piwik::translate('VisitTime_ColumnServerTime'), diff --git a/plugins/VisitorInterest/Menu.php b/plugins/VisitorInterest/Menu.php new file mode 100644 index 0000000000..13b9c66111 --- /dev/null +++ b/plugins/VisitorInterest/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\VisitorInterest; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->rename('General_Visitors', 'VisitFrequency_SubmenuFrequency', + 'General_Visitors', 'VisitorInterest_Engagement'); + } +} diff --git a/plugins/VisitorInterest/VisitorInterest.php b/plugins/VisitorInterest/VisitorInterest.php index 4661b34437..67fea477e4 100644 --- a/plugins/VisitorInterest/VisitorInterest.php +++ b/plugins/VisitorInterest/VisitorInterest.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\VisitorInterest; use Piwik\ArchiveProcessor; use Piwik\FrontController; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Metrics; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; @@ -30,11 +28,10 @@ class VisitorInterest extends \Piwik\Plugin public function getListHooksRegistered() { $hooks = array( - 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', - 'API.getReportMetadata' => 'getReportMetadata', - 'ViewDataTable.configure' => 'configureViewDataTable', - 'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable' + 'WidgetsList.addWidgets' => 'addWidgets', + 'API.getReportMetadata' => 'getReportMetadata', + 'ViewDataTable.configure' => 'configureViewDataTable', + 'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable' ); return $hooks; } @@ -108,12 +105,6 @@ class VisitorInterest extends \Piwik\Plugin WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetVisitsByDaysSinceLast', 'VisitorInterest', 'getNumberOfVisitsByDaysSinceLast'); } - public function addMenu(MenuAbstract $menu) - { - $menu->rename('General_Visitors', 'VisitFrequency_SubmenuFrequency', - 'General_Visitors', 'VisitorInterest_Engagement'); - } - function postLoad() { Piwik::addAction('Template.headerVisitsFrequency', array('Piwik\Plugins\VisitorInterest\VisitorInterest', 'headerVisitsFrequency')); diff --git a/plugins/VisitsSummary/Menu.php b/plugins/VisitsSummary/Menu.php new file mode 100644 index 0000000000..3a9d26029b --- /dev/null +++ b/plugins/VisitsSummary/Menu.php @@ -0,0 +1,20 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\VisitsSummary; + +use Piwik\Menu\MenuReporting; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureReportingMenu(MenuReporting $menu) + { + $menu->add('General_Visitors', '', array('module' => 'VisitsSummary', 'action' => 'index'), true, 10); + $menu->add('General_Visitors', 'General_Overview', array('module' => 'VisitsSummary', 'action' => 'index'), true, 1); + } +} diff --git a/plugins/VisitsSummary/VisitsSummary.php b/plugins/VisitsSummary/VisitsSummary.php index dfa923e39d..11f8a3827c 100644 --- a/plugins/VisitsSummary/VisitsSummary.php +++ b/plugins/VisitsSummary/VisitsSummary.php @@ -8,8 +8,6 @@ */ namespace Piwik\Plugins\VisitsSummary; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\WidgetsList; @@ -30,7 +28,6 @@ class VisitsSummary extends \Piwik\Plugin return array( 'API.getReportMetadata' => 'getReportMetadata', 'WidgetsList.addWidgets' => 'addWidgets', - 'Menu.Reporting.addItems' => 'addMenu', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', ); } @@ -71,11 +68,6 @@ class VisitsSummary extends \Piwik\Plugin WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetOverviewGraph', 'VisitsSummary', 'index'); } - function addMenu(MenuAbstract $menu) - { - $menu->add('General_Visitors', '', array('module' => 'VisitsSummary', 'action' => 'index'), true, 10); - $menu->add('General_Visitors', 'General_Overview', array('module' => 'VisitsSummary', 'action' => 'index'), true, 1); - } } |