getDataTable($name); $dataTable->filter('Sort',array(Piwik_Archive::INDEX_NB_VISITS)); $dataTable->queueFilter('ReplaceColumnNames'); $dataTable->queueFilter('Sort', array('label', 'asc', true)); return $dataTable; } public function getNumberOfVisitsPerVisitDuration( $idSite, $period, $date ) { $dataTable = $this->getDataTable('VisitorInterest_timeGap', $idSite, $period, $date); $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getDurationLabel')); return $dataTable; } public function getNumberOfVisitsPerPage( $idSite, $period, $date ) { $dataTable = $this->getDataTable('VisitorInterest_pageGap', $idSite, $period, $date); $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getPageGapLabel')); return $dataTable; } } function Piwik_getDurationLabel($label) { if(($pos = strpos($label,'-')) !== false) { $min = substr($label, 0, $pos); $max = substr($label, $pos+1); if($min == 0 || $min == 30) { $XYSeconds = Piwik_Translate('VisitorInterest_BetweenXYSeconds'); return sprintf($XYSeconds, $min, $max); } else { $min = $min / 60; $max = $max / 60; $XYMin = Piwik_Translate('VisitorInterest_BetweenXYMinutes'); return sprintf($XYMin, $min, $max); } } if(!is_numeric($label)) { return $label; } $time = intval($label) / 60; $plusXMin = Piwik_Translate('VisitorInterest_PlusXMin'); return sprintf($plusXMin, $time . urlencode('+')); } function Piwik_getPageGapLabel($label) { $return = false; if(($pos = strpos($label,'-')) !== false) { $min = substr($label, 0, $pos); $max = substr($label, $pos+1); if($min == $max) { $return = $min; } } if(!$return) { $return = $label; } if($return == 1) { return Piwik_Translate('VisitorInterest_OnePage'); } return sprintf(Piwik_Translate('VisitorInterest_NPages'), $return); }