From ae4b03163792f0b6e933933e5d37df87dc3fd566 Mon Sep 17 00:00:00 2001 From: mattab Date: Thu, 28 Mar 2013 12:42:39 +1300 Subject: Mass conversion of all files to the newly agreed coding standard: PSR 1/2 Converting Piwik core source files, PHP, JS, TPL, CSS More info: http://piwik.org/participate/coding-standards/ --- plugins/VisitsSummary/API.php | 274 +++++++++++----------- plugins/VisitsSummary/Controller.php | 301 ++++++++++++------------- plugins/VisitsSummary/VisitsSummary.php | 112 ++++----- plugins/VisitsSummary/templates/sparklines.tpl | 102 ++++----- 4 files changed, 388 insertions(+), 401 deletions(-) (limited to 'plugins/VisitsSummary') diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php index 9294e03b74..0864c517b5 100644 --- a/plugins/VisitsSummary/API.php +++ b/plugins/VisitsSummary/API.php @@ -17,146 +17,136 @@ */ class Piwik_VisitsSummary_API { - static private $instance = null; - /** - * @return Piwik_VisitsSummary_API - */ - static public function getInstance() - { - if (self::$instance == null) - { - self::$instance = new self; - } - return self::$instance; - } - - public function get( $idSite, $period, $date, $segment = false, $columns = false) - { - Piwik::checkUserHasViewAccess( $idSite ); - $archive = Piwik_Archive::build($idSite, $period, $date, $segment ); - - // array values are comma separated - $columns = Piwik::getArrayFromApiParameter($columns); - $tempColumns = array(); - - $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = false; - if(!empty($columns)) - { - // make sure base metrics are there for processed metrics - if(false !== ($bounceRateRequested = array_search('bounce_rate', $columns))) - { - if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; - if (!in_array('bounce_count', $columns)) $tempColumns[] = 'bounce_count'; - unset($columns[$bounceRateRequested]); - } - if(false !== ($actionsPerVisitRequested = array_search('nb_actions_per_visit', $columns))) - { - if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; - if (!in_array('nb_actions', $columns)) $tempColumns[] = 'nb_actions'; - unset($columns[$actionsPerVisitRequested]); - } - if(false !== ($averageVisitDurationRequested = array_search('avg_time_on_site', $columns))) - { - if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; - if (!in_array('sum_visit_length', $columns)) $tempColumns[] = 'sum_visit_length'; - unset($columns[$averageVisitDurationRequested]); - } - $tempColumns = array_unique($tempColumns); - rsort($tempColumns); - $columns = array_merge($columns, $tempColumns); - } - else - { - $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = true; - $columns = array( - 'nb_visits', - 'nb_actions', - 'nb_visits_converted', - 'bounce_count', - 'sum_visit_length', - 'max_actions' - ); - if(Piwik::isUniqueVisitorsEnabled($period)) - { - $columns = array_merge(array('nb_uniq_visitors'), $columns); - } - // Force reindex from 0 to N otherwise the SQL bind will fail - $columns = array_values($columns); - } - - $dataTable = $archive->getDataTableFromNumeric($columns); - - // Process ratio metrics from base metrics, when requested - if($bounceRateRequested !== false) - { - $dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_rate', 'bounce_count', 'nb_visits', 0)); - } - if($actionsPerVisitRequested !== false) - { - $dataTable->filter('ColumnCallbackAddColumnQuotient', array('nb_actions_per_visit', 'nb_actions', 'nb_visits', 1)); - } - if($averageVisitDurationRequested !== false) - { - $dataTable->filter('ColumnCallbackAddColumnQuotient', array('avg_time_on_site', 'sum_visit_length', 'nb_visits', 0)); - } - - // remove temp metrics that were used to compute processed metrics - $dataTable->deleteColumns($tempColumns); - - return $dataTable; - } - - protected function getNumeric( $idSite, $period, $date, $segment, $toFetch ) - { - Piwik::checkUserHasViewAccess( $idSite ); - $archive = Piwik_Archive::build($idSite, $period, $date, $segment ); - $dataTable = $archive->getNumeric($toFetch); - return $dataTable; - } - - public function getVisits( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_visits'); - } - - public function getUniqueVisitors( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_uniq_visitors'); - } - - public function getActions( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_actions'); - } - - public function getMaxActions( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'max_actions'); - } - - public function getBounceCount( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'bounce_count'); - } - - public function getVisitsConverted( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_visits_converted'); - } - - public function getSumVisitsLength( $idSite, $period, $date, $segment = false ) - { - return $this->getNumeric( $idSite, $period, $date, $segment, 'sum_visit_length'); - } - - public function getSumVisitsLengthPretty( $idSite, $period, $date, $segment = false ) - { - $table = $this->getSumVisitsLength( $idSite, $period, $date, $segment ); - if($table instanceof Piwik_DataTable_Array) { - $table->filter('ColumnCallbackReplace', array(0, array('Piwik', 'getPrettyTimeFromSeconds'))); - } else { - $table = Piwik::getPrettyTimeFromSeconds($table); - } - return $table; - } + static private $instance = null; + + /** + * @return Piwik_VisitsSummary_API + */ + static public function getInstance() + { + if (self::$instance == null) { + self::$instance = new self; + } + return self::$instance; + } + + public function get($idSite, $period, $date, $segment = false, $columns = false) + { + Piwik::checkUserHasViewAccess($idSite); + $archive = Piwik_Archive::build($idSite, $period, $date, $segment); + + // array values are comma separated + $columns = Piwik::getArrayFromApiParameter($columns); + $tempColumns = array(); + + $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = false; + if (!empty($columns)) { + // make sure base metrics are there for processed metrics + if (false !== ($bounceRateRequested = array_search('bounce_rate', $columns))) { + if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; + if (!in_array('bounce_count', $columns)) $tempColumns[] = 'bounce_count'; + unset($columns[$bounceRateRequested]); + } + if (false !== ($actionsPerVisitRequested = array_search('nb_actions_per_visit', $columns))) { + if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; + if (!in_array('nb_actions', $columns)) $tempColumns[] = 'nb_actions'; + unset($columns[$actionsPerVisitRequested]); + } + if (false !== ($averageVisitDurationRequested = array_search('avg_time_on_site', $columns))) { + if (!in_array('nb_visits', $columns)) $tempColumns[] = 'nb_visits'; + if (!in_array('sum_visit_length', $columns)) $tempColumns[] = 'sum_visit_length'; + unset($columns[$averageVisitDurationRequested]); + } + $tempColumns = array_unique($tempColumns); + rsort($tempColumns); + $columns = array_merge($columns, $tempColumns); + } else { + $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = true; + $columns = array( + 'nb_visits', + 'nb_actions', + 'nb_visits_converted', + 'bounce_count', + 'sum_visit_length', + 'max_actions' + ); + if (Piwik::isUniqueVisitorsEnabled($period)) { + $columns = array_merge(array('nb_uniq_visitors'), $columns); + } + // Force reindex from 0 to N otherwise the SQL bind will fail + $columns = array_values($columns); + } + + $dataTable = $archive->getDataTableFromNumeric($columns); + + // Process ratio metrics from base metrics, when requested + if ($bounceRateRequested !== false) { + $dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_rate', 'bounce_count', 'nb_visits', 0)); + } + if ($actionsPerVisitRequested !== false) { + $dataTable->filter('ColumnCallbackAddColumnQuotient', array('nb_actions_per_visit', 'nb_actions', 'nb_visits', 1)); + } + if ($averageVisitDurationRequested !== false) { + $dataTable->filter('ColumnCallbackAddColumnQuotient', array('avg_time_on_site', 'sum_visit_length', 'nb_visits', 0)); + } + + // remove temp metrics that were used to compute processed metrics + $dataTable->deleteColumns($tempColumns); + + return $dataTable; + } + + protected function getNumeric($idSite, $period, $date, $segment, $toFetch) + { + Piwik::checkUserHasViewAccess($idSite); + $archive = Piwik_Archive::build($idSite, $period, $date, $segment); + $dataTable = $archive->getNumeric($toFetch); + return $dataTable; + } + + public function getVisits($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'nb_visits'); + } + + public function getUniqueVisitors($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'nb_uniq_visitors'); + } + + public function getActions($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'nb_actions'); + } + + public function getMaxActions($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'max_actions'); + } + + public function getBounceCount($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'bounce_count'); + } + + public function getVisitsConverted($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'nb_visits_converted'); + } + + public function getSumVisitsLength($idSite, $period, $date, $segment = false) + { + return $this->getNumeric($idSite, $period, $date, $segment, 'sum_visit_length'); + } + + public function getSumVisitsLengthPretty($idSite, $period, $date, $segment = false) + { + $table = $this->getSumVisitsLength($idSite, $period, $date, $segment); + if ($table instanceof Piwik_DataTable_Array) { + $table->filter('ColumnCallbackReplace', array(0, array('Piwik', 'getPrettyTimeFromSeconds'))); + } else { + $table = Piwik::getPrettyTimeFromSeconds($table); + } + return $table; + } } diff --git a/plugins/VisitsSummary/Controller.php b/plugins/VisitsSummary/Controller.php index dec6a70957..86ebf7b5ac 100644 --- a/plugins/VisitsSummary/Controller.php +++ b/plugins/VisitsSummary/Controller.php @@ -15,156 +15,153 @@ */ class Piwik_VisitsSummary_Controller extends Piwik_Controller { - public function index() - { - $view = Piwik_View::factory('index'); - $this->setPeriodVariablesView($view); - $view->graphEvolutionVisitsSummary = $this->getEvolutionGraph( true, array('nb_visits') ); - $this->setSparklinesAndNumbers($view); - echo $view->render(); - } - - public function getSparklines() - { - $view = Piwik_View::factory('sparklines'); - $this->setPeriodVariablesView($view); - $this->setSparklinesAndNumbers($view); - echo $view->render(); - } - - public function getEvolutionGraph( $fetch = false, array $columns = array()) - { - if(empty($columns)) - { - $columns = Piwik_Common::getRequestVar('columns'); - $columns = Piwik::getArrayFromApiParameter($columns); - } - - $documentation = Piwik_Translate('VisitsSummary_VisitsSummaryDocumentation').'
' - . Piwik_Translate('General_BrokenDownReportDocumentation').'

' - - . ''.Piwik_Translate('General_ColumnNbVisits').': ' - . Piwik_Translate('General_ColumnNbVisitsDocumentation').'
' - - . ''.Piwik_Translate('General_ColumnNbUniqVisitors').': ' - . Piwik_Translate('General_ColumnNbUniqVisitorsDocumentation').'
' - - . ''.Piwik_Translate('General_ColumnNbActions').': ' - . Piwik_Translate('General_ColumnNbActionsDocumentation').'
' - - . ''.Piwik_Translate('General_ColumnActionsPerVisit').': ' - . Piwik_Translate('General_ColumnActionsPerVisitDocumentation'); - - $selectableColumns = array( - // columns from VisitsSummary.get - 'nb_visits', - 'nb_uniq_visitors', - 'avg_time_on_site', - 'bounce_rate', - 'nb_actions_per_visit', - 'max_actions', - 'nb_visits_converted', - // columns from Actions.get - 'nb_pageviews', - 'nb_uniq_pageviews', - 'nb_downloads', - 'nb_uniq_downloads', - 'nb_outlinks', - 'nb_uniq_outlinks' - ); - - $idSite = Piwik_Common::getRequestVar('idSite'); - $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite); - - if($displaySiteSearch) { - $selectableColumns[] = 'nb_searches'; - $selectableColumns[] = 'nb_keywords'; - } - $view = $this->getLastUnitGraphAcrossPlugins($this->pluginName, __FUNCTION__, $columns, - $selectableColumns, $documentation); - - return $this->renderView($view, $fetch); - } - - static public function getVisitsSummary() - { - $requestString = "method=VisitsSummary.get". - "&format=original". - // we disable filters for example "search for pattern", in the case this method is called - // by a method that already calls the API with some generic filters applied - "&disable_generic_filters=1"; - $request = new Piwik_API_Request($requestString); - $result = $request->process(); - return empty($result) ? new Piwik_DataTable() : $result; - } - - static public function getVisits() - { - $requestString = "method=VisitsSummary.getVisits". - "&format=original". - "&disable_generic_filters=1"; - $request = new Piwik_API_Request($requestString); - return $request->process(); - } - - protected function setSparklinesAndNumbers($view) - { - $view->urlSparklineNbVisits = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => $view->displayUniqueVisitors ? array('nb_visits', 'nb_uniq_visitors') : array('nb_visits'))); - $view->urlSparklineNbPageviews = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_pageviews', 'nb_uniq_pageviews'))); - $view->urlSparklineNbDownloads = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_downloads', 'nb_uniq_downloads'))); - $view->urlSparklineNbOutlinks = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_outlinks', 'nb_uniq_outlinks'))); - $view->urlSparklineAvgVisitDuration = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('avg_time_on_site'))); - $view->urlSparklineMaxActions = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('max_actions'))); - $view->urlSparklineActionsPerVisit = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_actions_per_visit'))); - $view->urlSparklineBounceRate = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('bounce_rate'))); - - $idSite = Piwik_Common::getRequestVar('idSite'); - $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite); - if($displaySiteSearch) - { - $view->urlSparklineNbSearches = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_searches', 'nb_keywords'))); - } - $view->displaySiteSearch = $displaySiteSearch; - - $dataTableVisit = self::getVisitsSummary(); - $dataRow = $dataTableVisit->getRowsCount() == 0 ? new Piwik_DataTable_Row() : $dataTableVisit->getFirstRow(); - - $dataTableActions = Piwik_Actions_API::getInstance()->get($idSite, Piwik_Common::getRequestVar('period'), Piwik_Common::getRequestVar('date'), Piwik_Common::getRequestVar('segment',false)); - $dataActionsRow = - $dataTableActions->getRowsCount() == 0 ? new Piwik_DataTable_Row() : $dataTableActions->getFirstRow(); - - $view->nbUniqVisitors = (int)$dataRow->getColumn('nb_uniq_visitors'); - $nbVisits = (int)$dataRow->getColumn('nb_visits'); - $view->nbVisits = $nbVisits; - $view->nbPageviews = (int)$dataActionsRow->getColumn('nb_pageviews'); - $view->nbUniquePageviews = (int)$dataActionsRow->getColumn('nb_uniq_pageviews'); - $view->nbDownloads = (int)$dataActionsRow->getColumn('nb_downloads'); - $view->nbUniqueDownloads = (int)$dataActionsRow->getColumn('nb_uniq_downloads'); - $view->nbOutlinks = (int)$dataActionsRow->getColumn('nb_outlinks'); - $view->nbUniqueOutlinks = (int)$dataActionsRow->getColumn('nb_uniq_outlinks'); - $view->averageVisitDuration = $dataRow->getColumn('avg_time_on_site'); - $nbBouncedVisits = $dataRow->getColumn('bounce_count'); - $view->bounceRate = Piwik::getPercentageSafe($nbBouncedVisits, $nbVisits); - $view->maxActions = (int)$dataRow->getColumn('max_actions'); - $view->nbActionsPerVisit = $dataRow->getColumn('nb_actions_per_visit'); - - if($displaySiteSearch) - { - $view->nbSearches = (int)$dataActionsRow->getColumn('nb_searches'); - $view->nbKeywords = (int)$dataActionsRow->getColumn('nb_keywords'); - } - - // backward compatibility: - // show actions if the finer metrics are not archived - $view->showOnlyActions = false; - if ( $dataActionsRow->getColumn('nb_pageviews') - + $dataActionsRow->getColumn('nb_downloads') - + $dataActionsRow->getColumn('nb_outlinks') == 0 - && $dataRow->getColumn('nb_actions') > 0) - { - $view->showOnlyActions = true; - $view->nbActions = $dataRow->getColumn('nb_actions'); - $view->urlSparklineNbActions = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_actions'))); - } - } + public function index() + { + $view = Piwik_View::factory('index'); + $this->setPeriodVariablesView($view); + $view->graphEvolutionVisitsSummary = $this->getEvolutionGraph(true, array('nb_visits')); + $this->setSparklinesAndNumbers($view); + echo $view->render(); + } + + public function getSparklines() + { + $view = Piwik_View::factory('sparklines'); + $this->setPeriodVariablesView($view); + $this->setSparklinesAndNumbers($view); + echo $view->render(); + } + + public function getEvolutionGraph($fetch = false, array $columns = array()) + { + if (empty($columns)) { + $columns = Piwik_Common::getRequestVar('columns'); + $columns = Piwik::getArrayFromApiParameter($columns); + } + + $documentation = Piwik_Translate('VisitsSummary_VisitsSummaryDocumentation') . '
' + . Piwik_Translate('General_BrokenDownReportDocumentation') . '

' + + . '' . Piwik_Translate('General_ColumnNbVisits') . ': ' + . Piwik_Translate('General_ColumnNbVisitsDocumentation') . '
' + + . '' . Piwik_Translate('General_ColumnNbUniqVisitors') . ': ' + . Piwik_Translate('General_ColumnNbUniqVisitorsDocumentation') . '
' + + . '' . Piwik_Translate('General_ColumnNbActions') . ': ' + . Piwik_Translate('General_ColumnNbActionsDocumentation') . '
' + + . '' . Piwik_Translate('General_ColumnActionsPerVisit') . ': ' + . Piwik_Translate('General_ColumnActionsPerVisitDocumentation'); + + $selectableColumns = array( + // columns from VisitsSummary.get + 'nb_visits', + 'nb_uniq_visitors', + 'avg_time_on_site', + 'bounce_rate', + 'nb_actions_per_visit', + 'max_actions', + 'nb_visits_converted', + // columns from Actions.get + 'nb_pageviews', + 'nb_uniq_pageviews', + 'nb_downloads', + 'nb_uniq_downloads', + 'nb_outlinks', + 'nb_uniq_outlinks' + ); + + $idSite = Piwik_Common::getRequestVar('idSite'); + $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite); + + if ($displaySiteSearch) { + $selectableColumns[] = 'nb_searches'; + $selectableColumns[] = 'nb_keywords'; + } + $view = $this->getLastUnitGraphAcrossPlugins($this->pluginName, __FUNCTION__, $columns, + $selectableColumns, $documentation); + + return $this->renderView($view, $fetch); + } + + static public function getVisitsSummary() + { + $requestString = "method=VisitsSummary.get" . + "&format=original" . + // we disable filters for example "search for pattern", in the case this method is called + // by a method that already calls the API with some generic filters applied + "&disable_generic_filters=1"; + $request = new Piwik_API_Request($requestString); + $result = $request->process(); + return empty($result) ? new Piwik_DataTable() : $result; + } + + static public function getVisits() + { + $requestString = "method=VisitsSummary.getVisits" . + "&format=original" . + "&disable_generic_filters=1"; + $request = new Piwik_API_Request($requestString); + return $request->process(); + } + + protected function setSparklinesAndNumbers($view) + { + $view->urlSparklineNbVisits = $this->getUrlSparkline('getEvolutionGraph', array('columns' => $view->displayUniqueVisitors ? array('nb_visits', 'nb_uniq_visitors') : array('nb_visits'))); + $view->urlSparklineNbPageviews = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_pageviews', 'nb_uniq_pageviews'))); + $view->urlSparklineNbDownloads = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_downloads', 'nb_uniq_downloads'))); + $view->urlSparklineNbOutlinks = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_outlinks', 'nb_uniq_outlinks'))); + $view->urlSparklineAvgVisitDuration = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('avg_time_on_site'))); + $view->urlSparklineMaxActions = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('max_actions'))); + $view->urlSparklineActionsPerVisit = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_actions_per_visit'))); + $view->urlSparklineBounceRate = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('bounce_rate'))); + + $idSite = Piwik_Common::getRequestVar('idSite'); + $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite); + if ($displaySiteSearch) { + $view->urlSparklineNbSearches = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_searches', 'nb_keywords'))); + } + $view->displaySiteSearch = $displaySiteSearch; + + $dataTableVisit = self::getVisitsSummary(); + $dataRow = $dataTableVisit->getRowsCount() == 0 ? new Piwik_DataTable_Row() : $dataTableVisit->getFirstRow(); + + $dataTableActions = Piwik_Actions_API::getInstance()->get($idSite, Piwik_Common::getRequestVar('period'), Piwik_Common::getRequestVar('date'), Piwik_Common::getRequestVar('segment', false)); + $dataActionsRow = + $dataTableActions->getRowsCount() == 0 ? new Piwik_DataTable_Row() : $dataTableActions->getFirstRow(); + + $view->nbUniqVisitors = (int)$dataRow->getColumn('nb_uniq_visitors'); + $nbVisits = (int)$dataRow->getColumn('nb_visits'); + $view->nbVisits = $nbVisits; + $view->nbPageviews = (int)$dataActionsRow->getColumn('nb_pageviews'); + $view->nbUniquePageviews = (int)$dataActionsRow->getColumn('nb_uniq_pageviews'); + $view->nbDownloads = (int)$dataActionsRow->getColumn('nb_downloads'); + $view->nbUniqueDownloads = (int)$dataActionsRow->getColumn('nb_uniq_downloads'); + $view->nbOutlinks = (int)$dataActionsRow->getColumn('nb_outlinks'); + $view->nbUniqueOutlinks = (int)$dataActionsRow->getColumn('nb_uniq_outlinks'); + $view->averageVisitDuration = $dataRow->getColumn('avg_time_on_site'); + $nbBouncedVisits = $dataRow->getColumn('bounce_count'); + $view->bounceRate = Piwik::getPercentageSafe($nbBouncedVisits, $nbVisits); + $view->maxActions = (int)$dataRow->getColumn('max_actions'); + $view->nbActionsPerVisit = $dataRow->getColumn('nb_actions_per_visit'); + + if ($displaySiteSearch) { + $view->nbSearches = (int)$dataActionsRow->getColumn('nb_searches'); + $view->nbKeywords = (int)$dataActionsRow->getColumn('nb_keywords'); + } + + // backward compatibility: + // show actions if the finer metrics are not archived + $view->showOnlyActions = false; + if ($dataActionsRow->getColumn('nb_pageviews') + + $dataActionsRow->getColumn('nb_downloads') + + $dataActionsRow->getColumn('nb_outlinks') == 0 + && $dataRow->getColumn('nb_actions') > 0 + ) { + $view->showOnlyActions = true; + $view->nbActions = $dataRow->getColumn('nb_actions'); + $view->urlSparklineNbActions = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_actions'))); + } + } } diff --git a/plugins/VisitsSummary/VisitsSummary.php b/plugins/VisitsSummary/VisitsSummary.php index 816472455b..87b320c947 100644 --- a/plugins/VisitsSummary/VisitsSummary.php +++ b/plugins/VisitsSummary/VisitsSummary.php @@ -19,66 +19,66 @@ */ class Piwik_VisitsSummary extends Piwik_Plugin { - public function getInformation() - { - $info = array( - 'description' => Piwik_Translate('VisitsSummary_PluginDescription'), - 'author' => 'Piwik', - 'author_homepage' => 'http://piwik.org/', - 'version' => Piwik_Version::VERSION, - ); - return $info; - } - - function getListHooksRegistered() - { - return array( - 'API.getReportMetadata' => 'getReportMetadata', - 'WidgetsList.add' => 'addWidgets', - 'Menu.add' => 'addMenu', - ); - } + public function getInformation() + { + $info = array( + 'description' => Piwik_Translate('VisitsSummary_PluginDescription'), + 'author' => 'Piwik', + 'author_homepage' => 'http://piwik.org/', + 'version' => Piwik_Version::VERSION, + ); + return $info; + } - /** - * @param Piwik_Event_Notification $notification notification object - */ - public function getReportMetadata($notification) - { - $reports = &$notification->getNotificationObject(); - $reports[] = array( - 'category' => Piwik_Translate('VisitsSummary_VisitsSummary'), - 'name' => Piwik_Translate('VisitsSummary_VisitsSummary'), - 'module' => 'VisitsSummary', - 'action' => 'get', - 'metrics' => array( - 'nb_uniq_visitors', - 'nb_visits', - 'nb_actions', - 'nb_actions_per_visit', - 'bounce_rate', - 'avg_time_on_site' => Piwik_Translate('General_VisitDuration'), - 'max_actions' => Piwik_Translate('General_ColumnMaxActions'), + function getListHooksRegistered() + { + return array( + 'API.getReportMetadata' => 'getReportMetadata', + 'WidgetsList.add' => 'addWidgets', + 'Menu.add' => 'addMenu', + ); + } + + /** + * @param Piwik_Event_Notification $notification notification object + */ + public function getReportMetadata($notification) + { + $reports = & $notification->getNotificationObject(); + $reports[] = array( + 'category' => Piwik_Translate('VisitsSummary_VisitsSummary'), + 'name' => Piwik_Translate('VisitsSummary_VisitsSummary'), + 'module' => 'VisitsSummary', + 'action' => 'get', + 'metrics' => array( + 'nb_uniq_visitors', + 'nb_visits', + 'nb_actions', + 'nb_actions_per_visit', + 'bounce_rate', + 'avg_time_on_site' => Piwik_Translate('General_VisitDuration'), + 'max_actions' => Piwik_Translate('General_ColumnMaxActions'), // Used to process metrics, not displayed/used directly // 'sum_visit_length', // 'nb_visits_converted', - ), - 'processedMetrics' => false, - 'order' => 1 - ); - } - - function addWidgets() - { - Piwik_AddWidget( 'VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetLastVisits', 'VisitsSummary', 'getEvolutionGraph', array('columns' => array('nb_visits'))); - Piwik_AddWidget( 'VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetVisits', 'VisitsSummary', 'getSparklines'); - Piwik_AddWidget( 'VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetOverviewGraph', 'VisitsSummary', 'index'); - } - - function addMenu() - { - Piwik_AddMenu('General_Visitors', '', array('module' => 'VisitsSummary', 'action' => 'index'), true, 10); - Piwik_AddMenu('General_Visitors', 'VisitsSummary_SubmenuOverview', array('module' => 'VisitsSummary', 'action' => 'index'), true, 1); - } + ), + 'processedMetrics' => false, + 'order' => 1 + ); + } + + function addWidgets() + { + Piwik_AddWidget('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetLastVisits', 'VisitsSummary', 'getEvolutionGraph', array('columns' => array('nb_visits'))); + Piwik_AddWidget('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetVisits', 'VisitsSummary', 'getSparklines'); + Piwik_AddWidget('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetOverviewGraph', 'VisitsSummary', 'index'); + } + + function addMenu() + { + Piwik_AddMenu('General_Visitors', '', array('module' => 'VisitsSummary', 'action' => 'index'), true, 10); + Piwik_AddMenu('General_Visitors', 'VisitsSummary_SubmenuOverview', array('module' => 'VisitsSummary', 'action' => 'index'), true, 1); + } } diff --git a/plugins/VisitsSummary/templates/sparklines.tpl b/plugins/VisitsSummary/templates/sparklines.tpl index 907e58e918..a0302f407a 100644 --- a/plugins/VisitsSummary/templates/sparklines.tpl +++ b/plugins/VisitsSummary/templates/sparklines.tpl @@ -1,58 +1,58 @@
-
- {sparkline src=$urlSparklineNbVisits} - {'VisitsSummary_NbVisits'|translate:"$nbVisits"}{if $displayUniqueVisitors}, - {'VisitsSummary_NbUniqueVisitors'|translate:"$nbUniqVisitors"}{/if} -
-
- {sparkline src=$urlSparklineAvgVisitDuration} - {assign var=averageVisitDuration value=$averageVisitDuration|sumtime} - {'VisitsSummary_AverageVisitDuration'|translate:"$averageVisitDuration"} -
-
- {sparkline src=$urlSparklineBounceRate} - {'VisitsSummary_NbVisitsBounced'|translate:"$bounceRate%"} -
-
- {sparkline src=$urlSparklineActionsPerVisit} - {'VisitsSummary_NbActionsPerVisit'|translate:"$nbActionsPerVisit"} -
+
+ {sparkline src=$urlSparklineNbVisits} + {'VisitsSummary_NbVisits'|translate:"$nbVisits"}{if $displayUniqueVisitors}, + {'VisitsSummary_NbUniqueVisitors'|translate:"$nbUniqVisitors"}{/if} +
+
+ {sparkline src=$urlSparklineAvgVisitDuration} + {assign var=averageVisitDuration value=$averageVisitDuration|sumtime} + {'VisitsSummary_AverageVisitDuration'|translate:"$averageVisitDuration"} +
+
+ {sparkline src=$urlSparklineBounceRate} + {'VisitsSummary_NbVisitsBounced'|translate:"$bounceRate%"} +
+
+ {sparkline src=$urlSparklineActionsPerVisit} + {'VisitsSummary_NbActionsPerVisit'|translate:"$nbActionsPerVisit"} +
- {if $showOnlyActions} -
- {sparkline src=$urlSparklineNbActions} - {'VisitsSummary_NbActionsDescription'|translate:"$nbActions"} -
- {else} -
- {sparkline src=$urlSparklineNbPageviews} - {'VisitsSummary_NbPageviewsDescription'|translate:"$nbPageviews"|trim}, - {'VisitsSummary_NbUniquePageviewsDescription'|translate:"$nbUniquePageviews"} -
- {if $displaySiteSearch} -
- {sparkline src=$urlSparklineNbSearches} - {'VisitsSummary_NbSearchesDescription'|translate:"$nbSearches"|trim}, - {'VisitsSummary_NbKeywordsDescription'|translate:"$nbKeywords"} -
- {/if} -
- {sparkline src=$urlSparklineNbDownloads} - {'VisitsSummary_NbDownloadsDescription'|translate:"$nbDownloads"|trim}, - {'VisitsSummary_NbUniqueDownloadsDescription'|translate:"$nbUniqueDownloads"} -
-
- {sparkline src=$urlSparklineNbOutlinks} - {'VisitsSummary_NbOutlinksDescription'|translate:"$nbOutlinks"|trim}, - {'VisitsSummary_NbUniqueOutlinksDescription'|translate:"$nbUniqueOutlinks"} -
- {/if} -
- {sparkline src=$urlSparklineMaxActions} - {'VisitsSummary_MaxNbActions'|translate:"$maxActions"} -
+ {if $showOnlyActions} +
+ {sparkline src=$urlSparklineNbActions} + {'VisitsSummary_NbActionsDescription'|translate:"$nbActions"} +
+ {else} +
+ {sparkline src=$urlSparklineNbPageviews} + {'VisitsSummary_NbPageviewsDescription'|translate:"$nbPageviews"|trim}, + {'VisitsSummary_NbUniquePageviewsDescription'|translate:"$nbUniquePageviews"} +
+ {if $displaySiteSearch} +
+ {sparkline src=$urlSparklineNbSearches} + {'VisitsSummary_NbSearchesDescription'|translate:"$nbSearches"|trim}, + {'VisitsSummary_NbKeywordsDescription'|translate:"$nbKeywords"} +
+ {/if} +
+ {sparkline src=$urlSparklineNbDownloads} + {'VisitsSummary_NbDownloadsDescription'|translate:"$nbDownloads"|trim}, + {'VisitsSummary_NbUniqueDownloadsDescription'|translate:"$nbUniqueDownloads"} +
+
+ {sparkline src=$urlSparklineNbOutlinks} + {'VisitsSummary_NbOutlinksDescription'|translate:"$nbOutlinks"|trim}, + {'VisitsSummary_NbUniqueOutlinksDescription'|translate:"$nbUniqueOutlinks"} +
+ {/if} +
+ {sparkline src=$urlSparklineMaxActions} + {'VisitsSummary_MaxNbActions'|translate:"$maxActions"} +
-- cgit v1.2.3