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:
Diffstat (limited to 'plugins/VisitFrequency/API.php')
-rw-r--r--plugins/VisitFrequency/API.php258
1 files changed, 124 insertions, 134 deletions
diff --git a/plugins/VisitFrequency/API.php b/plugins/VisitFrequency/API.php
index fbefbc505e..d712b67831 100644
--- a/plugins/VisitFrequency/API.php
+++ b/plugins/VisitFrequency/API.php
@@ -1,10 +1,10 @@
<?php
/**
* Piwik - Open source web analytics
- *
+ *
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- *
+ *
* @category Piwik_Plugins
* @package Piwik_VisitFrequency
*/
@@ -13,137 +13,127 @@
* VisitFrequency API lets you access a list of metrics related to Returning Visitors.
* @package Piwik_VisitFrequency
*/
-class Piwik_VisitFrequency_API
+class Piwik_VisitFrequency_API
{
- static private $instance = null;
- 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();
-
- $bounceRateReturningRequested = $averageVisitDurationReturningRequested = $actionsPerVisitReturningRequested = false;
- if(!empty($columns))
- {
- // make sure base metrics are there for processed metrics
- if(false !== ($bounceRateReturningRequested = array_search('bounce_rate_returning', $columns)))
- {
- if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
- if (!in_array('bounce_count_returning', $columns)) $tempColumns[] = 'bounce_count_returning';
- unset($columns[$bounceRateReturningRequested]);
- }
- if(false !== ($actionsPerVisitReturningRequested = array_search('nb_actions_per_visit_returning', $columns)))
- {
- if (!in_array('nb_actions_returning', $columns)) $tempColumns[] = 'nb_actions_returning';
- if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
- unset($columns[$actionsPerVisitReturningRequested]);
- }
- if(false !== ($averageVisitDurationReturningRequested = array_search('avg_time_on_site_returning', $columns)))
- {
- if (!in_array('sum_visit_length_returning', $columns)) $tempColumns[] = 'sum_visit_length_returning';
- if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
- unset($columns[$averageVisitDurationReturningRequested]);
- }
-
- $tempColumns = array_unique($tempColumns);
- $columns = array_merge($columns, $tempColumns);
- }
- else
- {
- $bounceRateReturningRequested = $averageVisitDurationReturningRequested = $actionsPerVisitReturningRequested = true;
- $columns = array(
- 'nb_visits_returning',
- 'nb_actions_returning',
- 'max_actions_returning',
- 'sum_visit_length_returning',
- 'bounce_count_returning',
- 'nb_visits_converted_returning',
- );
-
- if($period=='day')
- {
- $columns = array_merge(array('nb_uniq_visitors_returning'), $columns);
- }
- }
- $dataTable = $archive->getDataTableFromNumeric($columns);
-
- // Process ratio metrics
- if($bounceRateReturningRequested !== false)
- {
- $dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_rate_returning', 'bounce_count_returning', 'nb_visits_returning', 0));
- }
- if($actionsPerVisitReturningRequested !== false)
- {
- $dataTable->filter('ColumnCallbackAddColumnQuotient', array('nb_actions_per_visit_returning', 'nb_actions_returning', 'nb_visits_returning', 1));
- }
- if($averageVisitDurationReturningRequested !== false)
- {
- $dataTable->filter('ColumnCallbackAddColumnQuotient', array('avg_time_on_site_returning', 'sum_visit_length_returning', 'nb_visits_returning', 0));
- }
-
- // remove temporary metrics that were used to compute processed metrics
- $dataTable->deleteColumns($tempColumns);
-
- return $dataTable;
- }
-
- protected function getNumeric( $idSite, $period, $date, $toFetch )
- {
- Piwik::checkUserHasViewAccess( $idSite );
- $archive = Piwik_Archive::build($idSite, $period, $date );
- $dataTable = $archive->getNumeric($toFetch);
- return $dataTable;
- }
-
- /**
- * @ignore
- */
- public function getVisitsReturning( $idSite, $period, $date )
- {
- return $this->getNumeric( $idSite, $period, $date, 'nb_visits_returning');
- }
-
- /**
- * @ignore
- */
- public function getActionsReturning( $idSite, $period, $date )
- {
- return $this->getNumeric( $idSite, $period, $date, 'nb_actions_returning');
- }
-
- /**
- * @ignore
- */
- public function getSumVisitsLengthReturning( $idSite, $period, $date )
- {
- return $this->getNumeric( $idSite, $period, $date, 'sum_visit_length_returning');
- }
-
- /**
- * @ignore
- */
- public function getBounceCountReturning( $idSite, $period, $date )
- {
- return $this->getNumeric( $idSite, $period, $date, 'bounce_count_returning');
- }
-
- /**
- * @ignore
- */
- public function getConvertedVisitsReturning( $idSite, $period, $date )
- {
- return $this->getNumeric( $idSite, $period, $date, 'nb_visits_converted_returning');
- }
+ static private $instance = null;
+
+ 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();
+
+ $bounceRateReturningRequested = $averageVisitDurationReturningRequested = $actionsPerVisitReturningRequested = false;
+ if (!empty($columns)) {
+ // make sure base metrics are there for processed metrics
+ if (false !== ($bounceRateReturningRequested = array_search('bounce_rate_returning', $columns))) {
+ if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
+ if (!in_array('bounce_count_returning', $columns)) $tempColumns[] = 'bounce_count_returning';
+ unset($columns[$bounceRateReturningRequested]);
+ }
+ if (false !== ($actionsPerVisitReturningRequested = array_search('nb_actions_per_visit_returning', $columns))) {
+ if (!in_array('nb_actions_returning', $columns)) $tempColumns[] = 'nb_actions_returning';
+ if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
+ unset($columns[$actionsPerVisitReturningRequested]);
+ }
+ if (false !== ($averageVisitDurationReturningRequested = array_search('avg_time_on_site_returning', $columns))) {
+ if (!in_array('sum_visit_length_returning', $columns)) $tempColumns[] = 'sum_visit_length_returning';
+ if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning';
+ unset($columns[$averageVisitDurationReturningRequested]);
+ }
+
+ $tempColumns = array_unique($tempColumns);
+ $columns = array_merge($columns, $tempColumns);
+ } else {
+ $bounceRateReturningRequested = $averageVisitDurationReturningRequested = $actionsPerVisitReturningRequested = true;
+ $columns = array(
+ 'nb_visits_returning',
+ 'nb_actions_returning',
+ 'max_actions_returning',
+ 'sum_visit_length_returning',
+ 'bounce_count_returning',
+ 'nb_visits_converted_returning',
+ );
+
+ if ($period == 'day') {
+ $columns = array_merge(array('nb_uniq_visitors_returning'), $columns);
+ }
+ }
+ $dataTable = $archive->getDataTableFromNumeric($columns);
+
+ // Process ratio metrics
+ if ($bounceRateReturningRequested !== false) {
+ $dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_rate_returning', 'bounce_count_returning', 'nb_visits_returning', 0));
+ }
+ if ($actionsPerVisitReturningRequested !== false) {
+ $dataTable->filter('ColumnCallbackAddColumnQuotient', array('nb_actions_per_visit_returning', 'nb_actions_returning', 'nb_visits_returning', 1));
+ }
+ if ($averageVisitDurationReturningRequested !== false) {
+ $dataTable->filter('ColumnCallbackAddColumnQuotient', array('avg_time_on_site_returning', 'sum_visit_length_returning', 'nb_visits_returning', 0));
+ }
+
+ // remove temporary metrics that were used to compute processed metrics
+ $dataTable->deleteColumns($tempColumns);
+
+ return $dataTable;
+ }
+
+ protected function getNumeric($idSite, $period, $date, $toFetch)
+ {
+ Piwik::checkUserHasViewAccess($idSite);
+ $archive = Piwik_Archive::build($idSite, $period, $date);
+ $dataTable = $archive->getNumeric($toFetch);
+ return $dataTable;
+ }
+
+ /**
+ * @ignore
+ */
+ public function getVisitsReturning($idSite, $period, $date)
+ {
+ return $this->getNumeric($idSite, $period, $date, 'nb_visits_returning');
+ }
+
+ /**
+ * @ignore
+ */
+ public function getActionsReturning($idSite, $period, $date)
+ {
+ return $this->getNumeric($idSite, $period, $date, 'nb_actions_returning');
+ }
+
+ /**
+ * @ignore
+ */
+ public function getSumVisitsLengthReturning($idSite, $period, $date)
+ {
+ return $this->getNumeric($idSite, $period, $date, 'sum_visit_length_returning');
+ }
+
+ /**
+ * @ignore
+ */
+ public function getBounceCountReturning($idSite, $period, $date)
+ {
+ return $this->getNumeric($idSite, $period, $date, 'bounce_count_returning');
+ }
+
+ /**
+ * @ignore
+ */
+ public function getConvertedVisitsReturning($idSite, $period, $date)
+ {
+ return $this->getNumeric($idSite, $period, $date, 'nb_visits_converted_returning');
+ }
}