diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-19 07:10:29 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-06-19 07:10:29 +0400 |
commit | e9aae52fb3bc392663ee19aa2a5f702a3ed71fbf (patch) | |
tree | 0259bfcda90bf8cafd5e95383fff4111cf70ca96 | |
parent | 253b165e621953efcb692f985036e217920ba696 (diff) |
make sure the ordering of reports is correct, pass an instance of a report to RenderReport
-rw-r--r-- | core/Menu/MenuAbstract.php | 25 | ||||
-rw-r--r-- | core/Plugin/Controller.php | 16 | ||||
-rw-r--r-- | plugins/CustomVariables/Controller.php | 9 | ||||
-rw-r--r-- | plugins/CustomVariables/Menu.php | 24 | ||||
-rw-r--r-- | plugins/CustomVariables/Reports/GetCustomVariables.php | 2 | ||||
-rw-r--r-- | plugins/DBStats/Controller.php | 15 | ||||
-rw-r--r-- | plugins/DevicesDetection/Controller.php | 15 | ||||
-rw-r--r-- | plugins/Referrers/Controller.php | 12 | ||||
-rw-r--r-- | plugins/UserCountry/Controller.php | 12 | ||||
-rw-r--r-- | plugins/UserSettings/Controller.php | 24 | ||||
-rw-r--r-- | plugins/VisitTime/Controller.php | 6 | ||||
-rw-r--r-- | plugins/VisitorInterest/Controller.php | 12 |
12 files changed, 95 insertions, 77 deletions
diff --git a/core/Menu/MenuAbstract.php b/core/Menu/MenuAbstract.php index cbd5c5a798..69b48f76b1 100644 --- a/core/Menu/MenuAbstract.php +++ b/core/Menu/MenuAbstract.php @@ -291,15 +291,34 @@ abstract class MenuAbstract extends Singleton */ protected function menuCompare($itemOne, $itemTwo) { - if (!is_array($itemOne) || !is_array($itemTwo) - || !isset($itemOne['_order']) || !isset($itemTwo['_order']) - ) { + if (!is_array($itemOne) && !is_array($itemTwo)) { return 0; } + if (!is_array($itemOne) && is_array($itemTwo)) { + return -1; + } + + if (is_array($itemOne) && !is_array($itemTwo)) { + return 1; + } + + if (!isset($itemOne['_order']) && !isset($itemTwo['_order'])) { + return 0; + } + + if (!isset($itemOne['_order']) && isset($itemTwo['_order'])) { + return -1; + } + + if (isset($itemOne['_order']) && !isset($itemTwo['_order'])) { + return 1; + } + if ($itemOne['_order'] == $itemTwo['_order']) { return strcmp($itemOne['_name'], $itemTwo['_name']); } + return ($itemOne['_order'] < $itemTwo['_order']) ? -1 : 1; } } diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php index d3ae15a306..6c07c09367 100644 --- a/core/Plugin/Controller.php +++ b/core/Plugin/Controller.php @@ -263,18 +263,18 @@ abstract class Controller */ protected function renderReport($apiAction, $controllerAction = false) { - if ($apiAction instanceof Report) { - $apiAction->checkIsEnabled(); + if (empty($controllerAction) && is_string($apiAction)) { + $report = Report::factory($this->pluginName, $apiAction); - return $apiAction->render(); + if (!empty($report)) { + $apiAction = $report; + } } - if (empty($controllerAction)) { - $report = Report::factory($this->pluginName, $apiAction); + if ($apiAction instanceof Report) { + $apiAction->checkIsEnabled(); - if (!empty($report) && $report->isEnabled()) { - return $report->render(); - } + return $apiAction->render(); } $pluginName = $this->pluginName; diff --git a/plugins/CustomVariables/Controller.php b/plugins/CustomVariables/Controller.php index 47ed06eee6..59a4a949de 100644 --- a/plugins/CustomVariables/Controller.php +++ b/plugins/CustomVariables/Controller.php @@ -8,16 +8,7 @@ */ namespace Piwik\Plugins\CustomVariables; -use Piwik\Piwik; -use Piwik\View; - class Controller extends \Piwik\Plugin\Controller { - public function index() - { - return View::singleReport( - Piwik::translate('CustomVariables_CustomVariables'), - $this->renderReport('getCustomVariables')); - } } diff --git a/plugins/CustomVariables/Menu.php b/plugins/CustomVariables/Menu.php deleted file mode 100644 index fd2658b85e..0000000000 --- a/plugins/CustomVariables/Menu.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * Piwik - free/libre analytics platform - * - * @link http://piwik.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * - */ -namespace Piwik\Plugins\CustomVariables; - -use Piwik\Db; -use Piwik\Menu\MenuReporting; - -/** - */ -class Menu extends \Piwik\Plugin\Menu -{ - - public function configureReportingMenu(MenuReporting $menu) - { - $menu->add('General_Visitors', 'CustomVariables_CustomVariables', array('module' => 'CustomVariables', 'action' => 'index'), $display = true, $order = 50); - } - -} diff --git a/plugins/CustomVariables/Reports/GetCustomVariables.php b/plugins/CustomVariables/Reports/GetCustomVariables.php index bdfb89ea1e..b6f7e34666 100644 --- a/plugins/CustomVariables/Reports/GetCustomVariables.php +++ b/plugins/CustomVariables/Reports/GetCustomVariables.php @@ -24,6 +24,7 @@ class GetCustomVariables extends Base $this->actionToLoadSubTables = 'getCustomVariablesValuesFromNameId'; $this->order = 10; $this->widgetTitle = 'CustomVariables_CustomVariables'; + $this->menuTitle = 'CustomVariables_CustomVariables'; } public function configureView(ViewDataTable $view) @@ -34,5 +35,4 @@ class GetCustomVariables extends Base $view->requestConfig->filter_sort_column = 'nb_actions'; $view->requestConfig->filter_sort_order = 'desc'; } - } diff --git a/plugins/DBStats/Controller.php b/plugins/DBStats/Controller.php index 959a807ba6..de36313264 100644 --- a/plugins/DBStats/Controller.php +++ b/plugins/DBStats/Controller.php @@ -10,6 +10,11 @@ namespace Piwik\Plugins\DBStats; use Piwik\MetricsFormatter; use Piwik\Piwik; +use Piwik\Plugins\DBStats\Reports\GetAdminDataSummary; +use Piwik\Plugins\DBStats\Reports\GetDatabaseUsageSummary; +use Piwik\Plugins\DBStats\Reports\GetMetricDataSummary; +use Piwik\Plugins\DBStats\Reports\GetReportDataSummary; +use Piwik\Plugins\DBStats\Reports\GetTrackerDataSummary; use Piwik\View; /** @@ -29,11 +34,11 @@ class Controller extends \Piwik\Plugin\ControllerAdmin $view = new View('@DBStats/index'); $this->setBasicVariablesView($view); - $view->databaseUsageSummary = $this->renderReport('getDatabaseUsageSummary'); - $view->trackerDataSummary = $this->renderReport('getTrackerDataSummary'); - $view->metricDataSummary = $this->renderReport('getMetricDataSummary'); - $view->reportDataSummary = $this->renderReport('getReportDataSummary'); - $view->adminDataSummary = $this->renderReport('getAdminDataSummary'); + $view->databaseUsageSummary = $this->renderReport(new GetDatabaseUsageSummary()); + $view->trackerDataSummary = $this->renderReport(new GetTrackerDataSummary()); + $view->metricDataSummary = $this->renderReport(new GetMetricDataSummary()); + $view->reportDataSummary = $this->renderReport(new GetReportDataSummary()); + $view->adminDataSummary = $this->renderReport(new GetAdminDataSummary()); list($siteCount, $userCount, $totalSpaceUsed) = API::getInstance()->getGeneralInformation(); diff --git a/plugins/DevicesDetection/Controller.php b/plugins/DevicesDetection/Controller.php index d6aa0a0f30..bb3190bf2d 100644 --- a/plugins/DevicesDetection/Controller.php +++ b/plugins/DevicesDetection/Controller.php @@ -13,6 +13,11 @@ use Piwik\Common; use Piwik\Db; use Piwik\Piwik; use Piwik\Plugin\ControllerAdmin; +use Piwik\Plugins\DevicesDetection\Reports\GetBrand; +use Piwik\Plugins\DevicesDetection\Reports\GetBrowserFamilies; +use Piwik\Plugins\DevicesDetection\Reports\GetModel; +use Piwik\Plugins\DevicesDetection\Reports\GetOsFamilies; +use Piwik\Plugins\DevicesDetection\Reports\GetType; use Piwik\View; class Controller extends \Piwik\Plugin\Controller @@ -21,11 +26,11 @@ class Controller extends \Piwik\Plugin\Controller { $view = new View('@DevicesDetection/index'); $view->deviceTypes = $view->deviceModels = $view->deviceBrands = $view->osReport = $view->browserReport = "blank"; - $view->deviceTypes = $this->renderReport('getType'); - $view->deviceBrands = $this->renderReport('getBrand'); - $view->deviceModels = $this->renderReport('getModel'); - $view->osReport = $this->renderReport('getOsFamilies'); - $view->browserReport = $this->renderReport('getBrowserFamilies'); + $view->deviceTypes = $this->renderReport(new GetType()); + $view->deviceBrands = $this->renderReport(new GetBrand()); + $view->deviceModels = $this->renderReport(new GetModel()); + $view->osReport = $this->renderReport(new GetOsFamilies()); + $view->browserReport = $this->renderReport(new GetBrowserFamilies()); return $view->render(); } diff --git a/plugins/Referrers/Controller.php b/plugins/Referrers/Controller.php index c366af70b0..f2b31a7066 100644 --- a/plugins/Referrers/Controller.php +++ b/plugins/Referrers/Controller.php @@ -14,6 +14,10 @@ use Piwik\DataTable\Map; use Piwik\Metrics; use Piwik\Period\Range; use Piwik\Piwik; +use Piwik\Plugins\Referrers\Reports\GetKeywords; +use Piwik\Plugins\Referrers\Reports\GetSearchEngines; +use Piwik\Plugins\Referrers\Reports\GetSocials; +use Piwik\Plugins\Referrers\Reports\GetWebsites; use Piwik\SettingsPiwik; use Piwik\View; @@ -128,16 +132,16 @@ class Controller extends \Piwik\Plugin\Controller public function getSearchEnginesAndKeywords() { $view = new View('@Referrers/getSearchEnginesAndKeywords'); - $view->searchEngines = $this->renderReport('getSearchEngines'); - $view->keywords = $this->renderReport('getKeywords'); + $view->searchEngines = $this->renderReport(new GetSearchEngines()); + $view->keywords = $this->renderReport(new GetKeywords()); return $view->render(); } public function indexWebsites() { $view = new View('@Referrers/indexWebsites'); - $view->websites = $this->renderReport('getWebsites'); - $view->socials = $this->renderReport('getSocials'); + $view->websites = $this->renderReport(new GetWebsites()); + $view->socials = $this->renderReport(new GetSocials()); return $view->render(); } diff --git a/plugins/UserCountry/Controller.php b/plugins/UserCountry/Controller.php index fb38ed2b52..483b2d844f 100644 --- a/plugins/UserCountry/Controller.php +++ b/plugins/UserCountry/Controller.php @@ -19,6 +19,10 @@ use Piwik\Plugins\UserCountry\LocationProvider\GeoIp; use Piwik\Plugins\UserCountry\LocationProvider; use Piwik\Plugins\UserCountry\LocationProvider\DefaultProvider; use Piwik\Plugins\UserCountry\LocationProvider\GeoIp\Pecl; +use Piwik\Plugins\UserCountry\Reports\GetCity; +use Piwik\Plugins\UserCountry\Reports\GetContinent; +use Piwik\Plugins\UserCountry\Reports\GetCountry; +use Piwik\Plugins\UserCountry\Reports\GetRegion; use Piwik\View; /** @@ -33,10 +37,10 @@ class Controller extends \Piwik\Plugin\ControllerAdmin $view->urlSparklineCountries = $this->getUrlSparkline('getLastDistinctCountriesGraph'); $view->numberDistinctCountries = $this->getNumberOfDistinctCountries(true); - $view->dataTableCountry = $this->renderReport('getCountry'); - $view->dataTableContinent = $this->renderReport('getContinent'); - $view->dataTableRegion = $this->renderReport('getRegion'); - $view->dataTableCity = $this->renderReport('getCity'); + $view->dataTableCountry = $this->renderReport(new GetCountry()); + $view->dataTableContinent = $this->renderReport(new GetContinent()); + $view->dataTableRegion = $this->renderReport(new GetRegion()); + $view->dataTableCity = $this->renderReport(new GetCity()); return $view->render(); } diff --git a/plugins/UserSettings/Controller.php b/plugins/UserSettings/Controller.php index 5c3ddd5416..4f0e944672 100644 --- a/plugins/UserSettings/Controller.php +++ b/plugins/UserSettings/Controller.php @@ -8,6 +8,14 @@ */ namespace Piwik\Plugins\UserSettings; +use Piwik\Plugins\UserSettings\Reports\GetBrowser; +use Piwik\Plugins\UserSettings\Reports\GetBrowserType; +use Piwik\Plugins\UserSettings\Reports\GetConfiguration; +use Piwik\Plugins\UserSettings\Reports\GetLanguage; +use Piwik\Plugins\UserSettings\Reports\GetMobileVsDesktop; +use Piwik\Plugins\UserSettings\Reports\GetOS; +use Piwik\Plugins\UserSettings\Reports\GetPlugin; +use Piwik\Plugins\UserSettings\Reports\GetResolution; use Piwik\View; /** @@ -19,14 +27,14 @@ class Controller extends \Piwik\Plugin\Controller { $view = new View('@UserSettings/index'); - $view->dataTablePlugin = $this->renderReport('getPlugin'); - $view->dataTableResolution = $this->renderReport('getResolution'); - $view->dataTableConfiguration = $this->renderReport('getConfiguration'); - $view->dataTableOS = $this->renderReport('getOS'); - $view->dataTableBrowser = $this->renderReport('getBrowser'); - $view->dataTableBrowserType = $this->renderReport('getBrowserType'); - $view->dataTableMobileVsDesktop = $this->renderReport('getMobileVsDesktop'); - $view->dataTableBrowserLanguage = $this->renderReport('getLanguage'); + $view->dataTablePlugin = $this->renderReport(new GetPlugin()); + $view->dataTableResolution = $this->renderReport(new GetResolution()); + $view->dataTableConfiguration = $this->renderReport(new GetConfiguration()); + $view->dataTableOS = $this->renderReport(new GetOS()); + $view->dataTableBrowser = $this->renderReport(new GetBrowser()); + $view->dataTableBrowserType = $this->renderReport(new GetBrowserType()); + $view->dataTableMobileVsDesktop = $this->renderReport(new GetMobileVsDesktop()); + $view->dataTableBrowserLanguage = $this->renderReport(new GetLanguage()); return $view->render(); } diff --git a/plugins/VisitTime/Controller.php b/plugins/VisitTime/Controller.php index 08af238213..24bbf39a80 100644 --- a/plugins/VisitTime/Controller.php +++ b/plugins/VisitTime/Controller.php @@ -8,6 +8,8 @@ */ namespace Piwik\Plugins\VisitTime; +use Piwik\Plugins\VisitTime\Reports\GetVisitInformationPerLocalTime; +use Piwik\Plugins\VisitTime\Reports\GetVisitInformationPerServerTime; use Piwik\View; /** @@ -18,8 +20,8 @@ class Controller extends \Piwik\Plugin\Controller public function index() { $view = new View('@VisitTime/index'); - $view->dataTableVisitInformationPerLocalTime = $this->renderReport('getVisitInformationPerLocalTime'); - $view->dataTableVisitInformationPerServerTime = $this->renderReport('getVisitInformationPerServerTime'); + $view->dataTableVisitInformationPerLocalTime = $this->renderReport(new GetVisitInformationPerLocalTime()); + $view->dataTableVisitInformationPerServerTime = $this->renderReport(new GetVisitInformationPerServerTime()); return $view->render(); } } diff --git a/plugins/VisitorInterest/Controller.php b/plugins/VisitorInterest/Controller.php index 753fce592b..54de697282 100644 --- a/plugins/VisitorInterest/Controller.php +++ b/plugins/VisitorInterest/Controller.php @@ -8,6 +8,10 @@ */ namespace Piwik\Plugins\VisitorInterest; +use Piwik\Plugins\VisitorInterest\Reports\GetNumberOfVisitsByDaysSinceLast; +use Piwik\Plugins\VisitorInterest\Reports\GetNumberOfVisitsByVisitCount; +use Piwik\Plugins\VisitorInterest\Reports\GetNumberOfVisitsPerPage; +use Piwik\Plugins\VisitorInterest\Reports\GetNumberOfVisitsPerVisitDuration; use Piwik\View; class Controller extends \Piwik\Plugin\Controller @@ -15,10 +19,10 @@ class Controller extends \Piwik\Plugin\Controller public function index() { $view = new View('@VisitorInterest/index'); - $view->dataTableNumberOfVisitsPerVisitDuration = $this->renderReport('getNumberOfVisitsPerVisitDuration'); - $view->dataTableNumberOfVisitsPerPage = $this->renderReport('getNumberOfVisitsPerPage'); - $view->dataTableNumberOfVisitsByVisitNum = $this->renderReport('getNumberOfVisitsByVisitCount'); - $view->dataTableNumberOfVisitsByDaysSinceLast = $this->renderReport('getNumberOfVisitsByDaysSinceLast'); + $view->dataTableNumberOfVisitsPerVisitDuration = $this->renderReport(new GetNumberOfVisitsPerVisitDuration()); + $view->dataTableNumberOfVisitsPerPage = $this->renderReport(new GetNumberOfVisitsPerPage()); + $view->dataTableNumberOfVisitsByVisitNum = $this->renderReport(new GetNumberOfVisitsByVisitCount()); + $view->dataTableNumberOfVisitsByDaysSinceLast = $this->renderReport(new GetNumberOfVisitsByDaysSinceLast()); return $view->render(); } } |