diff --git a/core/Archive.php b/core/Archive.php index b95544dfbc6..1f9d571fb8d 100644 --- a/core/Archive.php +++ b/core/Archive.php @@ -610,7 +610,7 @@ private function cacheArchiveIdsAfterLaunching($archiveGroups, $plugins) continue; } - $this->prepareArchives($archiveGroups, $site, $period); + $this->prepareArchive($archiveGroups, $site, $period); } } } @@ -779,7 +779,7 @@ private static function getPluginForReport($report) * @param $site * @param $period */ - private function prepareArchives(array $archiveGroups, Site $site, Period $period) + private function prepareArchive(array $archiveGroups, Site $site, Period $period) { $parameters = new ArchiveProcessor\Parameters($site, $period, $this->params->getSegment()); $archiveLoader = new ArchiveProcessor\Loader($parameters); diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php index 189f861b4c4..b901c7fb6ab 100644 --- a/core/ArchiveProcessor.php +++ b/core/ArchiveProcessor.php @@ -365,6 +365,10 @@ protected function getOperationForColumns($columns, $defaultOperation) protected function enrichWithUniqueVisitorsMetric(Row $row) { + if(!$this->getParams()->isSingleSite() ) { + // we only compute unique visitors for a single site + return; + } if ( $row->getColumn('nb_uniq_visitors') !== false) { if (SettingsPiwik::isUniqueVisitorsEnabled($this->getParams()->getPeriod()->getLabel())) { $uniqueVisitors = (float)$this->computeNbUniqVisitors(); @@ -470,9 +474,7 @@ protected function getAggregatedNumericMetrics($columns, $operationToApply) if($rowMetrics === false) { $rowMetrics = new Row; } - if($this->getParams()->isSingleSite() ) { - $this->enrichWithUniqueVisitorsMetric($rowMetrics); - } + $this->enrichWithUniqueVisitorsMetric($rowMetrics); $this->renameColumnsAfterAggregation($results); $metrics = $rowMetrics->getColumns(); diff --git a/core/ArchiveProcessor/Parameters.php b/core/ArchiveProcessor/Parameters.php index eaec67751ff..70bb06e0ece 100644 --- a/core/ArchiveProcessor/Parameters.php +++ b/core/ArchiveProcessor/Parameters.php @@ -14,6 +14,7 @@ use Piwik\Date; use Piwik\Log; use Piwik\Period; +use Piwik\Piwik; use Piwik\Segment; use Piwik\Site; @@ -97,7 +98,12 @@ public function getSubPeriods() public function getIdSites() { $idSite = $this->getSite()->getId(); - return array($idSite); + + $idSites = array($idSite); + + Piwik::postEvent('ArchiveProcessor.Parameters.getIdSites', array( &$idSites ) ); + + return $idSites; } /**