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:
authormattpiwik <matthieu.aubry@gmail.com>2010-07-13 19:44:42 +0400
committermattpiwik <matthieu.aubry@gmail.com>2010-07-13 19:44:42 +0400
commit957d02819f50396696cdf9098fa2e8b362e2757a (patch)
treef88fedbe52f9e92b4263cc141803c18bca0ed2e8 /plugins/VisitsSummary/API.php
parent0b7b2d3f61400b4ac3299dbb6c2cd5210179c12f (diff)
Fixes #1297
* now reporting Actions per visit * reporting Average Visit duration instead of total visit duration * removed api getMaxActionsReturning() as it doesn't sound like a useful metric * udpated tests to test the new metrics git-svn-id: http://dev.piwik.org/svn/trunk@2494 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/VisitsSummary/API.php')
-rw-r--r--plugins/VisitsSummary/API.php31
1 files changed, 30 insertions, 1 deletions
diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php
index e3ea62e02c..7f4f3dcd80 100644
--- a/plugins/VisitsSummary/API.php
+++ b/plugins/VisitsSummary/API.php
@@ -32,7 +32,8 @@ class Piwik_VisitsSummary_API
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
- $bounceRateRequested = false;
+ $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = false;
+ $countColumnsRequested = count($columns);
if(!empty($columns))
{
$toFetch = $columns;
@@ -40,9 +41,18 @@ class Piwik_VisitsSummary_API
{
$toFetch = array('nb_visits', 'bounce_count');
}
+ elseif(($actionsPerVisitRequested = array_search('nb_actions_per_visit', $toFetch)) !== false)
+ {
+ $toFetch = array('nb_actions', 'nb_visits');
+ }
+ elseif(($averageVisitDurationRequested = array_search('avg_visit_length', $toFetch)) !== false)
+ {
+ $toFetch = array('sum_visit_length', 'nb_visits');
+ }
}
else
{
+ $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = true;
$toFetch = array( 'max_actions',
'nb_uniq_visitors',
'nb_visits',
@@ -52,10 +62,29 @@ class Piwik_VisitsSummary_API
'nb_visits_converted',
);
}
+
$dataTable = $archive->getDataTableFromNumeric($toFetch);
+
+ // 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_visit_length', 'sum_visit_length', 'nb_visits', 0));
+ }
+
+ // If only a computed metrics was requested, we delete other metrics
+ // that we selected only to process this one metric
+ if($countColumnsRequested == 1
+ && ($bounceRateRequested || $actionsPerVisitRequested || $averageVisitDurationRequested)
+ )
+ {
$dataTable->deleteColumns($toFetch);
}
return $dataTable;