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:
authormattab <matthieu.aubry@gmail.com>2013-11-13 06:31:46 +0400
committermattab <matthieu.aubry@gmail.com>2013-11-13 06:31:46 +0400
commit511b067ebec4d34636a06b0fd480773be935c4b8 (patch)
tree9a92b469f1458a03b6143183222aeb964daa324c /core/ArchiveProcessor.php
parentd81c7f005134db0085b02d3d883d1a0636477eec (diff)
Minor
Diffstat (limited to 'core/ArchiveProcessor.php')
-rw-r--r--core/ArchiveProcessor.php43
1 files changed, 26 insertions, 17 deletions
diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php
index 441bd149e2..c09cd3b611 100644
--- a/core/ArchiveProcessor.php
+++ b/core/ArchiveProcessor.php
@@ -17,6 +17,7 @@ use Piwik\DataAccess\ArchiveWriter;
use Piwik\DataAccess\LogAggregator;
use Piwik\DataTable\Manager;
use Piwik\DataTable\Map;
+use Piwik\DataTable\Row;
use Piwik\Db;
use Piwik\Period;
@@ -344,8 +345,9 @@ class ArchiveProcessor
protected function aggregateDataTableRecord($name, $columnsAggregationOperation = null, $columnsToRenameAfterAggregation = null)
{
$dataTable = $this->getArchive()->getDataTableExpanded($name, $idSubTable = null, $depth = null, $addMetadataSubtableId = false);
- $table = $this->getAggregatedDataTableMap($dataTable, $columnsAggregationOperation, $columnsToRenameAfterAggregation);
- return $table;
+ $dataTable = $this->getAggregatedDataTableMap($dataTable, $columnsAggregationOperation);
+ $this->renameColumnsAfterAggregation($dataTable, $columnsToRenameAfterAggregation);
+ return $dataTable;
}
protected function getOperationForColumns($columns, $defaultOperation)
@@ -361,13 +363,13 @@ class ArchiveProcessor
return $operationForColumn;
}
- protected function enrichWithUniqueVisitorsMetric(&$results)
+ protected function enrichWithUniqueVisitorsMetric(Row $row)
{
- if (isset($results['nb_uniq_visitors'])) {
+ if ( $row->getColumn('nb_uniq_visitors') !== false) {
if (SettingsPiwik::isUniqueVisitorsEnabled($this->getParams()->getPeriod()->getLabel())) {
- $results['nb_uniq_visitors'] = (float)$this->computeNbUniqVisitors();
+ $row->setColumn('nb_uniq_visitors', (float)$this->computeNbUniqVisitors());
} else {
- unset($results['nb_uniq_visitors']);
+ $row->deleteColumn('nb_uniq_visitors');
}
}
}
@@ -407,7 +409,7 @@ class ArchiveProcessor
* @param $columnsToRenameAfterAggregation array
* @return DataTable
*/
- protected function getAggregatedDataTableMap($data, $columnsAggregationOperation, $columnsToRenameAfterAggregation = null)
+ protected function getAggregatedDataTableMap($data, $columnsAggregationOperation)
{
$table = new DataTable();
if (!empty($columnsAggregationOperation)) {
@@ -419,14 +421,6 @@ class ArchiveProcessor
} else {
$table->addDataTable($data);
}
-
- // Rename columns after aggregation
- if (is_null($columnsToRenameAfterAggregation)) {
- $columnsToRenameAfterAggregation = self::$columnsToRenameAfterAggregation;
- }
- foreach ($columnsToRenameAfterAggregation as $oldName => $newName) {
- $table->renameColumn($oldName, $newName);
- }
return $table;
}
@@ -446,6 +440,17 @@ class ArchiveProcessor
}
}
+ protected function renameColumnsAfterAggregation(DataTable $table, $columnsToRenameAfterAggregation = null)
+ {
+ // Rename columns after aggregation
+ if (is_null($columnsToRenameAfterAggregation)) {
+ $columnsToRenameAfterAggregation = self::$columnsToRenameAfterAggregation;
+ }
+ foreach ($columnsToRenameAfterAggregation as $oldName => $newName) {
+ $table->renameColumn($oldName, $newName);
+ }
+ }
+
protected function getAggregatedNumericMetrics($columns, $operationToApply)
{
if (!is_array($columns)) {
@@ -456,17 +461,21 @@ class ArchiveProcessor
$dataTable = $this->getArchive()->getDataTableFromNumeric($columns);
$results = $this->getAggregatedDataTableMap($dataTable, $operationForColumn);
-
if ($results->getRowsCount() > 1) {
throw new Exception("A DataTable is an unexpected state:" . var_export($results, true));
}
+
$rowMetrics = $results->getFirstRow();
+ if($this->getParams()->isSingleSiteDayArchive()) {
+ $this->enrichWithUniqueVisitorsMetric($rowMetrics);
+ }
+ $this->renameColumnsAfterAggregation($results);
+
if ($rowMetrics === false) {
$metrics = array();
} else {
$metrics = $rowMetrics->getColumns();
}
- $this->enrichWithUniqueVisitorsMetric($metrics);
foreach ($columns as $name) {
if (!isset($metrics[$name])) {