diff options
author | mattpiwik <matthieu.aubry@gmail.com> | 2011-02-12 16:34:53 +0300 |
---|---|---|
committer | mattpiwik <matthieu.aubry@gmail.com> | 2011-02-12 16:34:53 +0300 |
commit | 0e3252517cf23823cbb231250ab1839679ae6808 (patch) | |
tree | 3296cadc2ee9f6b939034b9d26d39f0ad83b362f /plugins/VisitsSummary | |
parent | 8518cb19b351e5d9be1d6d1951da4a8f0044cb96 (diff) |
Refs #1736
* API functions returning data now have a new optional 'segment' parameter. segment can define a Visitor segment dynamically that will be applied to the report. For example, &segment=country==FR;actions>=3 (AND, OR supported. Only == and != supported currently, but easy to add more)
* For API requests with a segment parameter, the reports will now be processed on the fly, and only the requested plugin report will be archived.
* All plugins now define the 'segments', with a name, category, SQL field, filter, etc.
* Simplifying archiving code a bit
* Fixes #2069 Exit rate computation
* New widget: lists the Top Keywords for a page URL, Widgets for a website only. Maybe later we could create a widget category "For your site"?
* This widget is pretty cool SEO wise, but maybe the PHP snippet should do caching (not so good hitting the API on each page view... but why not?)
* still to do!
git-svn-id: http://dev.piwik.org/svn/trunk@3870 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/VisitsSummary')
-rw-r--r-- | plugins/VisitsSummary/API.php | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php index 572e7ceb89..6545e1087b 100644 --- a/plugins/VisitsSummary/API.php +++ b/plugins/VisitsSummary/API.php @@ -26,10 +26,10 @@ class Piwik_VisitsSummary_API return self::$instance; } - public function get( $idSite, $period, $date, $columns = false) + public function get( $idSite, $period, $date, $segment = false, $columns = false) { Piwik::checkUserHasViewAccess( $idSite ); - $archive = Piwik_Archive::build($idSite, $period, $date ); + $archive = Piwik_Archive::build($idSite, $period, $date, $segment ); // array values are comma separated $columns = Piwik::getArrayFromApiParameter($columns); @@ -92,52 +92,52 @@ class Piwik_VisitsSummary_API return $dataTable; } - protected function getNumeric( $idSite, $period, $date, $toFetch ) + protected function getNumeric( $idSite, $period, $date, $segment, $toFetch ) { Piwik::checkUserHasViewAccess( $idSite ); - $archive = Piwik_Archive::build($idSite, $period, $date ); + $archive = Piwik_Archive::build($idSite, $period, $date, $segment ); $dataTable = $archive->getNumeric($toFetch); return $dataTable; } - public function getVisits( $idSite, $period, $date ) + public function getVisits( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'nb_visits'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_visits'); } - public function getUniqueVisitors( $idSite, $period, $date ) + public function getUniqueVisitors( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'nb_uniq_visitors'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_uniq_visitors'); } - public function getActions( $idSite, $period, $date ) + public function getActions( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'nb_actions'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_actions'); } - public function getMaxActions( $idSite, $period, $date ) + public function getMaxActions( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'max_actions'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'max_actions'); } - public function getBounceCount( $idSite, $period, $date ) + public function getBounceCount( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'bounce_count'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'bounce_count'); } - public function getVisitsConverted( $idSite, $period, $date ) + public function getVisitsConverted( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'nb_visits_converted'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'nb_visits_converted'); } - public function getSumVisitsLength( $idSite, $period, $date ) + public function getSumVisitsLength( $idSite, $period, $date, $segment = false ) { - return $this->getNumeric( $idSite, $period, $date, 'sum_visit_length'); + return $this->getNumeric( $idSite, $period, $date, $segment, 'sum_visit_length'); } - public function getSumVisitsLengthPretty( $idSite, $period, $date ) + public function getSumVisitsLengthPretty( $idSite, $period, $date, $segment = false ) { - $table = $this->getSumVisitsLength( $idSite, $period, $date ); + $table = $this->getSumVisitsLength( $idSite, $period, $date, $segment ); if($table instanceof Piwik_DataTable_Array) { $table->filter('ColumnCallbackReplace', array(0, array('Piwik', 'getPrettyTimeFromSeconds'))); } else { |