diff options
Diffstat (limited to 'plugins/CoreHome/Columns/Metrics/AverageTimeOnSite.php')
-rw-r--r-- | plugins/CoreHome/Columns/Metrics/AverageTimeOnSite.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/plugins/CoreHome/Columns/Metrics/AverageTimeOnSite.php b/plugins/CoreHome/Columns/Metrics/AverageTimeOnSite.php new file mode 100644 index 0000000000..e590e19871 --- /dev/null +++ b/plugins/CoreHome/Columns/Metrics/AverageTimeOnSite.php @@ -0,0 +1,53 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +namespace Piwik\Plugins\CoreHome\Columns\Metrics; + +use Piwik\DataTable\Row; +use Piwik\Metrics\Formatter; +use Piwik\Piwik; +use Piwik\Plugin\ProcessedMetric; + +/** + * The average number of seconds spent on the site per visit. Calculated as: + * + * sum_visit_length / nb_visits + * + * sum_visit_length & nb_visits are calculated during archiving. + * + * @api + */ +class AverageTimeOnSite extends ProcessedMetric +{ + public function getName() + { + return 'avg_time_on_site'; + } + + public function compute(Row $row) + { + $sumVisitLength = $this->getMetric($row, 'sum_visit_length'); + $nbVisits = $this->getMetric($row, 'nb_visits'); + + return Piwik::getQuotientSafe($sumVisitLength, $nbVisits, $precision = 0); + } + + public function format($value, Formatter $formatter) + { + return $formatter->getPrettyTimeFromSeconds($value); + } + + public function getTranslatedName() + { + return Piwik::translate('General_ColumnAvgTimeOnSite'); + } + + public function getDependentMetrics() + { + return array('sum_visit_length', 'nb_visits'); + } +}
\ No newline at end of file |