From a5bbfbf9bc18d29f0aad91e3a67c70d2736f93f5 Mon Sep 17 00:00:00 2001 From: Benaka Moorthi <benaka.moorthi@gmail.com> Date: Sun, 28 Jul 2013 14:34:42 -0400 Subject: [PATCH] Refs #4040, convert DevicesDetection plugin to use display properties instead of ViewDataTable methods. --- plugins/DevicesDetection/Controller.php | 84 ++----------- plugins/DevicesDetection/DevicesDetection.php | 115 ++++++++++++++++++ 2 files changed, 122 insertions(+), 77 deletions(-) diff --git a/plugins/DevicesDetection/Controller.php b/plugins/DevicesDetection/Controller.php index 56ee810556..94584e60b9 100644 --- a/plugins/DevicesDetection/Controller.php +++ b/plugins/DevicesDetection/Controller.php @@ -11,24 +11,6 @@ */ class Piwik_DevicesDetection_Controller extends Piwik_Controller { - - /** The set of related reports displayed under the 'Operating Systems' header. */ - private $osRelatedReports = null; - private $browserRelatedReports = null; - - public function __construct() - { - parent::__construct(); - $this->osRelatedReports = array( - 'DevicesDetection.getOsFamilies' => Piwik_Translate('DeviceDetection_OperatingSystemFamilies'), - 'DevicesDetection.getOsVersions' => Piwik_Translate('DeviceDetection_OperatingSystemVersions') - ); - $this->browserRelatedReports = array( - 'DevicesDetection.getBrowserFamilies' => Piwik_Translate('DevicesDetection_BrowsersFamily'), - 'DevicesDetection.getBrowserVersions' => Piwik_Translate('DevicesDetection_BrowserVersions') - ); - } - public function index($fetch = false) { $view = new Piwik_View('@DevicesDetection/index'); @@ -43,88 +25,37 @@ class Piwik_DevicesDetection_Controller extends Piwik_Controller public function getType($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getType' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelTypes")); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getBrand($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getBrand' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelBrands")); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getModel($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getModel' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelModels")); - - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getOsFamilies($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getOsFamilies' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelSystemFamily")); - $view->addRelatedReports(Piwik_Translate('DeviceDetection_OperatingSystemFamilies'), $this->osRelatedReports); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getOsVersions($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getOsVersions' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelSystemVersion")); - $view->addRelatedReports(Piwik_Translate('DeviceDetection_OperatingSystemVersions'), $this->osRelatedReports); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getBrowserFamilies($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getBrowserFamilies' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelBrowserFamily")); - $view->addRelatedReports(Piwik_Translate('DevicesDetection_BrowsersFamily'), $this->browserRelatedReports); - return $this->renderView($view, $fetch); + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } public function getBrowserVersions($fetch = false) { - $view = $this->getStandardDataTableUserSettings( - __FUNCTION__, 'DevicesDetection.getBrowserVersions' - ); - - $view->setColumnTranslation('label', Piwik_Translate("DevicesDetection_dataTableLabelBrowserVersion")); - $view->addRelatedReports(Piwik_Translate('DevicesDetection_BrowserVersions'), $this->browserRelatedReports); - return $this->renderView($view, $fetch); - } - - protected function getStandardDataTableUserSettings($currentControllerAction, $APItoCall, $defaultDatatableType = null) - { - $view = Piwik_ViewDataTable::factory($defaultDatatableType); - $view->init($this->pluginName, $currentControllerAction, $APItoCall); - $view->disableSearchBox(); - $view->disableExcludeLowPopulation(); - $this->setPeriodVariablesView($view); - $this->setMetricsVariablesView($view); - return $view; + return Piwik_ViewDataTable::render($this->pluginName, __FUNCTION__, $fetch); } /** @@ -174,5 +105,4 @@ class Piwik_DevicesDetection_Controller extends Piwik_Controller WHERE idvisit = " . $idVisit; Piwik_Query($q); } - } diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php index e86c5d9a98..4d3424f377 100644 --- a/plugins/DevicesDetection/DevicesDetection.php +++ b/plugins/DevicesDetection/DevicesDetection.php @@ -14,6 +14,23 @@ require_once PIWIK_INCLUDE_PATH . '/plugins/DevicesDetection/functions.php'; class Piwik_DevicesDetection extends Piwik_Plugin { + /** The set of related reports displayed under the 'Operating Systems' header. */ + private $osRelatedReports = null; + private $browserRelatedReports = null; + + public function __construct() + { + parent::__construct(); + $this->osRelatedReports = array( + 'DevicesDetection.getOsFamilies' => Piwik_Translate('DeviceDetection_OperatingSystemFamilies'), + 'DevicesDetection.getOsVersions' => Piwik_Translate('DeviceDetection_OperatingSystemVersions') + ); + $this->browserRelatedReports = array( + 'DevicesDetection.getBrowserFamilies' => Piwik_Translate('DevicesDetection_BrowsersFamily'), + 'DevicesDetection.getBrowserVersions' => Piwik_Translate('DevicesDetection_BrowserVersions') + ); + } + /** * @see Piwik_Plugin::getInformation */ @@ -41,6 +58,7 @@ class Piwik_DevicesDetection extends Piwik_Plugin 'WidgetsList.add' => 'addWidgets', 'API.getReportMetadata' => 'getReportMetadata', 'API.getSegmentsMetadata' => 'getSegmentsMetadata', + 'ViewDataTable.getReportDisplayProperties' => 'getReportDisplayProperties', ); } @@ -246,4 +264,101 @@ class Piwik_DevicesDetection extends Piwik_Plugin { Piwik_AddMenu('General_Visitors', 'DevicesDetection_submenu', array('module' => 'DevicesDetection', 'action' => 'index')); } + + public function getReportDisplayProperties(&$properties) + { + $properties['DevicesDetection.getType'] = $this->getDisplayPropertiesForGetType(); + $properties['DevicesDetection.getBrand'] = $this->getDisplayPropertiesForGetBrand(); + $properties['DevicesDetection.getModel'] = $this->getDisplayPropertiesForGetModel(); + $properties['DevicesDetection.getOsFamilies'] = $this->getDisplayPropertiesForGetOsFamilies(); + $properties['DevicesDetection.getOsVersions'] = $this->getDisplayPropertiesForGetOsVersions(); + $properties['DevicesDetection.getBrowserFamilies'] = $this->getDisplayPropertiesForGetBrowserFamilies(); + $properties['DevicesDetection.getBrowserVersions'] = $this->getDisplayPropertiesForGetBrowserVersions(); + } + + private function getDisplayPropertiesForGetType() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelTypes")) + ); + } + + private function getDisplayPropertiesForGetBrand() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelBrands")) + ); + } + + private function getDisplayPropertiesForGetModel() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelModels")) + ); + } + + private function getDisplayPropertiesForGetOsFamilies() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelSystemFamily")), + 'title' => Piwik_Translate('DeviceDetection_OperatingSystemFamilies'), + 'relatedReports' => $this->getOsRelatedReports() + ); + } + + private function getDisplayPropertiesForGetOsVersions() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelSystemVersion")), + 'title' => Piwik_Translate('DeviceDetection_OperatingSystemVersions'), + 'relatedReports' => $this->getOsRelatedReports() + ); + } + + private function getDisplayPropertiesForGetBrowserFamilies() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelBrowserFamily")), + 'title' => Piwik_Translate('DevicesDetection_BrowsersFamily'), + 'relatedReports' => $this->getBrowserRelatedReports() + ); + } + + private function getDisplayPropertiesForGetBrowserVersions() + { + return array( + 'show_search' => false, + 'show_exclude_low_population' => false, + 'translations' => array('label' => Piwik_Translate("DevicesDetection_dataTableLabelBrowserVersion")), + 'relatedReports' => $this->getBrowserRelatedReports() + ); + } + + private function getOsRelatedReports() + { + return array( + 'DevicesDetection.getOsFamilies' => Piwik_Translate('DeviceDetection_OperatingSystemFamilies'), + 'DevicesDetection.getOsVersions' => Piwik_Translate('DeviceDetection_OperatingSystemVersions') + ); + } + + private function getBrowserRelatedReports() + { + return array( + 'DevicesDetection.getBrowserFamilies' => Piwik_Translate('DevicesDetection_BrowsersFamily'), + 'DevicesDetection.getBrowserVersions' => Piwik_Translate('DevicesDetection_BrowserVersions') + ); + } } -- GitLab