Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenaka Moorthi <benaka.moorthi@gmail.com>2013-07-12 10:31:39 +0400
committerBenaka Moorthi <benaka.moorthi@gmail.com>2013-07-12 10:31:39 +0400
commit01057779046dd67923bd34d123628ab60ed263bc (patch)
tree94353df4f7848f2de63f3eeb0c9eeed2020965c8 /plugins/UserSettings
parent98e6c9b8874ffc8c18570ed4cc062cc5f0eb80c0 (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.php173
-rw-r--r--plugins/UserSettings/UserSettings.php125
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(' ', '&nbsp;', 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