From 1ab7e73362a1528e8b6d6a7e15440d404b560c4c Mon Sep 17 00:00:00 2001 From: sebastianpiskorski Date: Fri, 29 Jan 2016 02:04:49 +0100 Subject: [PATCH] PPCDEV-379 Added possibility to modify visualizations of VisitorLog widget/view and Visitors Real-time widget. Refactored getLastVisitsStart() action to render report instead of using an API. --- plugins/Live/Controller.php | 9 ++-- .../Live/Reports/GetVisitorsInRealTime.php | 47 +++++++++++++++++ .../Visualizations/VisitorsInRealTime.php | 50 +++++++++++++++++++ .../templates/_dataTableViz_visitorLog.twig | 2 + .../Live/templates/getLastVisitsStart.twig | 4 +- 5 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 plugins/Live/Reports/GetVisitorsInRealTime.php create mode 100644 plugins/Live/Visualizations/VisitorsInRealTime.php diff --git a/plugins/Live/Controller.php b/plugins/Live/Controller.php index a74b4424ecf..510f7276cb7 100644 --- a/plugins/Live/Controller.php +++ b/plugins/Live/Controller.php @@ -15,6 +15,7 @@ use Piwik\Plugins\Goals\API as APIGoals; use Piwik\Url; use Piwik\View; +use Piwik\ViewDataTable\Factory as ViewDataTableFactory; /** */ @@ -75,13 +76,9 @@ public function getLastVisitsStart() \Piwik\Period\Factory::checkPeriodIsEnabled('day'); $_GET['period'] = 'day'; - $view = new View('@Live/getLastVisitsStart'); - $view->idSite = $this->idSite; - $api = new Request("method=Live.getLastVisitsDetails&idSite={$this->idSite}&filter_limit=10&format=php&serialize=0&disable_generic_filters=1"); - $visitors = $api->process(); - $view->visitors = $visitors; + $this->checkSitePermission(); - return $this->render($view); + return $this->renderReport('getVisitorsInRealTime'); } private function setCounters($view) diff --git a/plugins/Live/Reports/GetVisitorsInRealTime.php b/plugins/Live/Reports/GetVisitorsInRealTime.php new file mode 100644 index 00000000000..49a2b3fb3f1 --- /dev/null +++ b/plugins/Live/Reports/GetVisitorsInRealTime.php @@ -0,0 +1,47 @@ +requestConfig->apiMethodToRequestDataTable = 'Live.getLastVisitsDetails'; + } + + public function render() + { + $view = ViewDataTableFactory::build(null, 'Live.getVisitorsInRealTime', 'Live.getVisitorsInRealTime'); + + $rendered = $view->render(); + + return $rendered; + } + +} \ No newline at end of file diff --git a/plugins/Live/Visualizations/VisitorsInRealTime.php b/plugins/Live/Visualizations/VisitorsInRealTime.php new file mode 100644 index 00000000000..dbfbcb2dbc8 --- /dev/null +++ b/plugins/Live/Visualizations/VisitorsInRealTime.php @@ -0,0 +1,50 @@ +config->show_visualization_only = true; + } + + public function beforeLoadDataTable() + { + $this->requestConfig->addPropertiesThatShouldBeAvailableClientSide(array( + 'filter_limit', + 'filter_offset', + 'filter_sort_column', + 'filter_sort_order', + )); + + if (!is_numeric($this->requestConfig->filter_limit)) { + $this->requestConfig->filter_limit = 10; + } + + $this->requestConfig->disable_generic_filters = true; + $this->requestConfig->filter_sort_column = false; + } + + public static function canDisplayViewDataTable(ViewDataTable $view) + { + return ($view->requestConfig->getApiModuleToRequest() === 'Live'); + } +} \ No newline at end of file diff --git a/plugins/Live/templates/_dataTableViz_visitorLog.twig b/plugins/Live/templates/_dataTableViz_visitorLog.twig index 16cac60b73d..5ae56c95707 100644 --- a/plugins/Live/templates/_dataTableViz_visitorLog.twig +++ b/plugins/Live/templates/_dataTableViz_visitorLog.twig @@ -190,6 +190,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit {% endif %}
+ {{ postEvent('Live.visitorLogViewBeforeActionsInfo', visitor) }}
{{ visitor.getColumn('actionDetails')|length }} @@ -205,6 +206,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit {% include "@Live/_actionsList.twig" with {'actionDetails': visitor.getColumn('actionDetails')} %}
+ {{ postEvent('Live.visitorLogViewAfterActionsInfo', visitor) }}
{% endset %} diff --git a/plugins/Live/templates/getLastVisitsStart.twig b/plugins/Live/templates/getLastVisitsStart.twig index e2a99e4dd9d..772b915850f 100644 --- a/plugins/Live/templates/getLastVisitsStart.twig +++ b/plugins/Live/templates/getLastVisitsStart.twig @@ -2,11 +2,13 @@ {% set maxPagesDisplayedByVisitor=100 %}