diff options
author | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-07-12 10:31:39 +0400 |
---|---|---|
committer | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-07-12 10:31:39 +0400 |
commit | 01057779046dd67923bd34d123628ab60ed263bc (patch) | |
tree | 94353df4f7848f2de63f3eeb0c9eeed2020965c8 /plugins/UserSettings | |
parent | 98e6c9b8874ffc8c18570ed4cc062cc5f0eb80c0 (diff) |
Refs #4040, #4041, move all ViewDataTable properties to the viewProperties array and allow these properties to be specified through new display metadata. Converted the Actions, Goals, UserSettings and VisitTime controllers.
Notes:
- Includes refactoring of ExcludeLowPopulation filter.
Diffstat (limited to 'plugins/UserSettings')
-rw-r--r-- | plugins/UserSettings/Controller.php | 173 | ||||
-rw-r--r-- | plugins/UserSettings/UserSettings.php | 125 |
2 files changed, 143 insertions, 155 deletions
diff --git a/plugins/UserSettings/Controller.php b/plugins/UserSettings/Controller.php index f5c7893783..515eacf118 100644 --- a/plugins/UserSettings/Controller.php +++ b/plugins/UserSettings/Controller.php @@ -15,19 +15,7 @@ */ class Piwik_UserSettings_Controller extends Piwik_Controller { - /** The set of related reports displayed under the 'Operating Systems' header. */ - private $osRelatedReports = null; - - public function __construct() - { - parent::__construct(); - $this->osRelatedReports = array( - 'UserSettings.getOSFamily' => Piwik_Translate('UserSettings_OperatingSystemFamily'), - 'UserSettings.getOS' => Piwik_Translate('UserSettings_OperatingSystems') - ); - } - - function index() + public function index() { $view = new Piwik_View('@UserSettings/index'); @@ -42,172 +30,59 @@ class Piwik_UserSettings_Controller extends Piwik_Controller echo $view->render(); } - - function getResolution($fetch = false) + + public function getResolution($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getResolution' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnResolution')); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - - function getConfiguration($fetch = false) + + public function getConfiguration($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getConfiguration' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnConfiguration')); - $view->setLimit(3); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - function getOS($fetch = false) + public function getOS($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getOS' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnOperatingSystem')); - $view->addRelatedReports(Piwik_Translate('UserSettings_OperatingSystems'), $this->osRelatedReports); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - /** - * Returns or echos a report displaying the number of visits by operating system family. - */ public function getOSFamily($fetch = false) { - $view = $this->getStandardDataTableUserSettings(__FUNCTION__, 'UserSettings.getOSFamily'); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_OperatingSystemFamily')); - $view->addRelatedReports(Piwik_Translate('UserSettings_OperatingSystemFamily'), $this->osRelatedReports); - return $this->renderView($view, $fetch); - } - - function getBrowserVersion($fetch = false) - { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getBrowserVersion' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnBrowserVersion')); - $view->setGraphLimit(7); - $view->addRelatedReports(Piwik_Translate('UserSettings_ColumnBrowserVersion'), array( - 'UserSettings.getBrowser' => Piwik_Translate('UserSettings_Browsers') - )); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - /** - * Returns or echos a report displaying the number of visits by browser type. The browser - * version is not included in this report. - */ - public function getBrowser($fetch = false) + public function getMobileVsDesktop($fetch = false) { - $view = $this->getStandardDataTableUserSettings(__FUNCTION__, 'UserSettings.getBrowser'); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnBrowser')); - $view->setGraphLimit(7); - $view->addRelatedReports(Piwik_Translate('UserSettings_Browsers'), array( - 'UserSettings.getBrowserVersion' => Piwik_Translate('UserSettings_ColumnBrowserVersion') - )); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - function getBrowserType($fetch = false) + public function getBrowserVersion($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getBrowserType', - 'graphPie' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnBrowserFamily')); - $view->disableOffsetInformationAndPaginationControls(); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - function getWideScreen($fetch = false) + public function getBrowser($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getWideScreen' - ); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnTypeOfScreen')); - $view->disableOffsetInformationAndPaginationControls(); - $view->addRelatedReports(Piwik_Translate('UserSettings_ColumnTypeOfScreen'), array( - 'UserSettings.getMobileVsDesktop' => Piwik_Translate('UserSettings_MobileVsDesktop') - )); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - /** - * Returns or echos a report displaying the number of visits by device type (Mobile or Desktop). - */ - public function getMobileVsDesktop($fetch = false) + public function getBrowserType($fetch = false) { - $view = $this->getStandardDataTableUserSettings(__FUNCTION__, 'UserSettings.getMobileVsDesktop'); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_MobileVsDesktop')); - $view->addRelatedReports(Piwik_Translate('UserSettings_MobileVsDesktop'), array( - 'UserSettings.getWideScreen' => Piwik_Translate('UserSettings_ColumnTypeOfScreen') - )); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - function getPlugin($fetch = false) + public function getWideScreen($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, - 'UserSettings.getPlugin' - ); - $view->disableShowAllViewsIcons(); - $view->disableShowAllColumns(); - $view->disableOffsetInformationAndPaginationControls(); - $view->setColumnsToDisplay(array('label', 'nb_visits_percentage', 'nb_visits')); - $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnPlugin')); - $view->setColumnTranslation('nb_visits_percentage', Piwik_Metrics::getPercentVisitColumn()); - $view->setSortedColumn('nb_visits_percentage'); - $view->setLimit(10); - $view->setFooterMessage(Piwik_Translate('UserSettings_PluginDetectionDoesNotWorkInIE')); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - protected function getStandardDataTableUserSettings($currentControllerAction, - $APItoCall, - $defaultDatatableType = null) + public function getPlugin($fetch = false) { - $view = Piwik_ViewDataTable::factory($defaultDatatableType); - $view->init($this->pluginName, $currentControllerAction, $APItoCall); - $view->disableSearchBox(); - $view->disableExcludeLowPopulation(); - $view->setLimit(5); - $view->setGraphLimit(5); - - $this->setPeriodVariablesView($view); - $this->setMetricsVariablesView($view); - - return $view; + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } - /** - * Renders datatable for browser language - * - * @param bool $fetch - * - * @return string|void - */ public function getLanguage($fetch = false) { - $view = Piwik_ViewDataTable::factory(); - $view->init($this->pluginName, __FUNCTION__, "UserSettings.getLanguage"); - $view->disableExcludeLowPopulation(); - - $view->setColumnsToDisplay(array('label', 'nb_visits')); - $view->setColumnTranslation('label', Piwik_Translate('General_Language')); - $view->setSortedColumn('nb_visits'); - $view->disableSearchBox(); - $view->setLimit(5); - - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } -}
\ No newline at end of file +} diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php index e7a15f9e79..9097213fa7 100644 --- a/plugins/UserSettings/UserSettings.php +++ b/plugins/UserSettings/UserSettings.php @@ -171,15 +171,128 @@ class Piwik_UserSettings extends Piwik_Plugin function getListHooksRegistered() { $hooks = array( - 'ArchiveProcessing_Day.compute' => 'archiveDay', - 'ArchiveProcessing_Period.compute' => 'archivePeriod', - 'WidgetsList.add' => 'addWidgets', - 'Menu.add' => 'addMenu', - 'API.getReportMetadata' => 'getReportMetadata', - 'API.getSegmentsMetadata' => 'getSegmentsMetadata', + 'ArchiveProcessing_Day.compute' => 'archiveDay', + 'ArchiveProcessing_Period.compute' => 'archivePeriod', + 'WidgetsList.add' => 'addWidgets', + 'Menu.add' => 'addMenu', + 'API.getReportMetadata' => 'getReportMetadata', + 'API.getSegmentsMetadata' => 'getSegmentsMetadata', + 'ViewDataTable.getReportDisplayProperties' => 'getReportDisplayProperties', ); return $hooks; } + + public function getReportDisplayProperties(&$properties, $apiAction) + { + $basicUserSettingsProperties = array('show_search' => false, + 'show_exclude_low_population' => false, + 'filter_limit' => 5, + 'graph_limit' => 5); + + $osRelatedReports = array( + 'UserSettings.getOSFamily' => Piwik_Translate('UserSettings_OperatingSystemFamily'), + 'UserSettings.getOS' => Piwik_Translate('UserSettings_OperatingSystems') + ); + + $browserRelatedReports = array( + 'UserSettings.getBrowser' => Piwik_Translate('UserSettings_Browsers'), + 'UserSettings.getBrowserVersion' => Piwik_Translate('UserSettings_ColumnBrowserVersion') + ); + + $wideScreenDeviceTypeRelatedReports = array( + 'UserSettings.getMobileVsDesktop' => Piwik_Translate('UserSettings_MobileVsDesktop'), + 'UserSettings.getWideScreen' => Piwik_Translate('UserSettings_ColumnTypeOfScreen') + ); + + $reportViewProperties = array( + 'UserSettings.getResolution' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnResolution')) + )), + + 'UserSettings.getConfiguration' => array_merge($basicUserSettingsProperties, array( + 'filter_limit' => 3, + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnConfiguration')) + )), + + 'UserSettings.getOS' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnOperatingSystem')), + 'title' => Piwik_Translate('UserSettings_OperatingSystems'), + 'relatedReports' => $osRelatedReports + )), + + 'UserSettings.getOSFamily' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_OperatingSystemFamily')), + 'title' => Piwik_Translate('UserSettings_OperatingSystemFamily'), + 'relatedReports' => $osRelatedReports + )), + + 'UserSettings.getBrowserVersion' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnBrowserVersion')), + 'graph_limit' => 7, + 'title' => Piwik_Translate('UserSettings_ColumnBrowserVersion'), + 'relatedReports' => $browserRelatedReports + )), + + 'UserSettings.getBrowser' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnBrowser')), + 'graph_limit' => 7, + 'title' => Piwik_Translate('UserSettings_Browsers'), + 'relatedReports' => $browserRelatedReports + )), + + 'UserSettings.getBrowserType' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnBrowserFamily')), + 'show_offset_information' => false, + 'show_pagination_control' => false, + 'default_view_type' => 'graphPie', + )), + + 'UserSettings.getWideScreen' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_ColumnTypeOfScreen')), + 'show_offset_information' => false, + 'show_pagination_control' => false, + 'title' => Piwik_Translate('UserSettings_ColumnTypeOfScreen'), + 'relatedReports' => $wideScreenDeviceTypeRelatedReports + )), + + 'UserSettings.getMobileVsDesktop' => array_merge($basicUserSettingsProperties, array( + 'translations' => array('label' => Piwik_Translate('UserSettings_MobileVsDesktop')), + 'title' => Piwik_Translate('UserSettings_MobileVsDesktop'), + 'relatedReports' => $wideScreenDeviceTypeRelatedReports + )), + + 'UserSettings.getPlugin' => array_merge($basicUserSettingsProperties, array( + 'translations' => array( + 'label' => Piwik_Translate('UserSettings_ColumnPlugin'), + 'nb_visits_percentage' => + str_replace(' ', ' ', Piwik_Translate('General_ColumnPercentageVisits')) + ), + 'show_offset_information' => false, + 'show_pagination_control' => false, + 'show_all_views_icons' => false, + 'show_table_all_columns' => false, + 'columns_to_display' => array('label', 'nb_visits_percentage', 'nb_visits'), + 'filter_sort_column' => 'nb_visits_percentage', + 'filter_sort_order' => 'desc', + 'filter_limit' => 10, + 'show_footer_message' => Piwik_Translate('UserSettings_PluginDetectionDoesNotWorkInIE'), + )), + + 'UserSettings.getLanguage' => array( + 'translations' => array('label' => Piwik_Translate('General_Language')), + 'filter_sort_column' => 'nb_visits', + 'filter_sort_order' => 'desc', + 'show_search' => false, + 'filter_limit' => false, + 'columns_to_display' => array('label', 'nb_visits'), + 'show_exclude_low_population' => false, + ), + ); + + if (isset($reportViewProperties[$apiAction])) { + $properties = $reportViewProperties[$apiAction]; + } + } /** * Registers reports metadata |