update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -9,8 +9,9 @@
|
|||
namespace Piwik\Plugins\VisitsSummary;
|
||||
|
||||
use Piwik\Archive;
|
||||
use Piwik\MetricsFormatter;
|
||||
use Piwik\Metrics\Formatter;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\Report;
|
||||
use Piwik\SettingsPiwik;
|
||||
|
||||
/**
|
||||
|
|
@ -26,51 +27,18 @@ class API extends \Piwik\Plugin\API
|
|||
Piwik::checkUserHasViewAccess($idSite);
|
||||
$archive = Archive::build($idSite, $period, $date, $segment);
|
||||
|
||||
// array values are comma separated
|
||||
$columns = Piwik::getArrayFromApiParameter($columns);
|
||||
$tempColumns = array();
|
||||
$requestedColumns = Piwik::getArrayFromApiParameter($columns);
|
||||
|
||||
$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 = $this->getCoreColumns($period);
|
||||
}
|
||||
$report = Report::factory("VisitsSummary", "get");
|
||||
$columns = $report->getMetricsRequiredForReport($this->getCoreColumns($period), $requestedColumns);
|
||||
|
||||
$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));
|
||||
if (!empty($requestedColumns)) {
|
||||
$columnsToShow = $requestedColumns ?: $report->getAllMetrics();
|
||||
$dataTable->queueFilter('ColumnDelete', array($columnsToRemove = array(), $columnsToShow));
|
||||
}
|
||||
|
||||
// remove temp metrics that were used to compute processed metrics
|
||||
$dataTable->deleteColumns($tempColumns);
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
|
|
@ -95,7 +63,7 @@ class API extends \Piwik\Plugin\API
|
|||
'max_actions'
|
||||
);
|
||||
if (SettingsPiwik::isUniqueVisitorsEnabled($period)) {
|
||||
$columns = array_merge(array('nb_uniq_visitors'), $columns);
|
||||
$columns = array_merge(array('nb_uniq_visitors', 'nb_users'), $columns);
|
||||
}
|
||||
$columns = array_values($columns);
|
||||
return $columns;
|
||||
|
|
@ -116,7 +84,16 @@ class API extends \Piwik\Plugin\API
|
|||
|
||||
public function getUniqueVisitors($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
return $this->getNumeric($idSite, $period, $date, $segment, 'nb_uniq_visitors');
|
||||
$metric = 'nb_uniq_visitors';
|
||||
$this->checkUniqueIsEnabledOrFail($period, $metric);
|
||||
return $this->getNumeric($idSite, $period, $date, $segment, $metric);
|
||||
}
|
||||
|
||||
public function getUsers($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$metric = 'nb_users';
|
||||
$this->checkUniqueIsEnabledOrFail($period, $metric);
|
||||
return $this->getNumeric($idSite, $period, $date, $segment, $metric);
|
||||
}
|
||||
|
||||
public function getActions($idSite, $period, $date, $segment = false)
|
||||
|
|
@ -146,13 +123,30 @@ class API extends \Piwik\Plugin\API
|
|||
|
||||
public function getSumVisitsLengthPretty($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
$formatter = new Formatter();
|
||||
|
||||
$table = $this->getSumVisitsLength($idSite, $period, $date, $segment);
|
||||
if (is_object($table)) {
|
||||
$table->filter('ColumnCallbackReplace',
|
||||
array('sum_visit_length', '\Piwik\MetricsFormatter::getPrettyTimeFromSeconds'));
|
||||
array('sum_visit_length', array($formatter, 'getPrettyTimeFromSeconds'), array(true)));
|
||||
} else {
|
||||
$table = MetricsFormatter::getPrettyTimeFromSeconds($table);
|
||||
$table = $formatter->getPrettyTimeFromSeconds($table, true);
|
||||
}
|
||||
return $table;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $period
|
||||
* @param $metric
|
||||
* @throws \Exception
|
||||
*/
|
||||
private function checkUniqueIsEnabledOrFail($period, $metric)
|
||||
{
|
||||
if (!SettingsPiwik::isUniqueVisitorsEnabled($period)) {
|
||||
throw new \Exception(
|
||||
"The metric " . $metric . " is not enabled for the requested period. " .
|
||||
"Please see this FAQ: http://piwik.org/faq/how-to/faq_113/"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue