diff options
author | diosmosis <benaka@piwik.pro> | 2014-09-09 07:23:04 +0400 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2014-09-09 16:29:46 +0400 |
commit | 482e797236ff984d450dbf5802f7148bdc40d94b (patch) | |
tree | 9402ba650ed3604c63cb3780df950e1d13291d85 /core/ArchiveProcessor.php | |
parent | 6d0ab4e0c5125887ebc1750ea6d82240218b4da6 (diff) |
Allow LogAggregator to work with multiple site IDs, compute unique visitors for archives of multiple sites and add option to control whether unique visitors for multiple sites are processed.
Diffstat (limited to 'core/ArchiveProcessor.php')
-rw-r--r-- | core/ArchiveProcessor.php | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php index 800db50a11..9cc67f6271 100644 --- a/core/ArchiveProcessor.php +++ b/core/ArchiveProcessor.php @@ -99,13 +99,28 @@ class ArchiveProcessor * @var int */ protected $numberOfVisits = false; + protected $numberOfVisitsConverted = false; + /** + * If true, unique visitors are not calculated when we are aggregating data for multiple sites. + * The `[General] enable_processing_unique_visitors_multiple_sites` INI config option controls + * the value of this variable. + * + * @var bool + */ + private $skipUniqueVisitorsCalculationForMultipleSites = true; + + const SKIP_UNIQUE_VISITORS_FOR_MULTIPLE_SITES = 'enable_processing_unique_visitors_multiple_sites'; + public function __construct(Parameters $params, ArchiveWriter $archiveWriter) { $this->params = $params; $this->logAggregator = new LogAggregator($params); $this->archiveWriter = $archiveWriter; + + $this->skipUniqueVisitorsCalculationForMultipleSites = + Config::getInstance()->General['enable_processing_unique_visitors_multiple_sites'] == 1; } protected function getArchive() @@ -365,12 +380,15 @@ class ArchiveProcessor protected function enrichWithUniqueVisitorsMetric(Row $row) { - if(!$this->getParams()->isSingleSite() ) { - // we only compute unique visitors for a single site + // skip unique visitors metrics calculation if calculating for multiple sites is disabled + if (!$this->getParams()->isSingleSite() + && $this->skipUniqueVisitorsCalculationForMultipleSites + ) { return; } - if ( $row->getColumn('nb_uniq_visitors') !== false - || $row->getColumn('nb_users') !== false) { + if ($row->getColumn('nb_uniq_visitors') !== false + || $row->getColumn('nb_users') !== false + ) { if (SettingsPiwik::isUniqueVisitorsEnabled($this->getParams()->getPeriod()->getLabel())) { $metrics = array(Metrics::INDEX_NB_UNIQ_VISITORS, Metrics::INDEX_NB_USERS); $uniques = $this->computeNbUniques( $metrics ); |