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:
-rw-r--r--core/ArchiveProcessor.php3
-rw-r--r--core/ArchiveProcessor/Loader.php27
-rw-r--r--core/ArchiveProcessor/PluginsArchiver.php15
3 files changed, 28 insertions, 17 deletions
diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php
index d21a2d6a88..a343078fdb 100644
--- a/core/ArchiveProcessor.php
+++ b/core/ArchiveProcessor.php
@@ -247,6 +247,9 @@ class ArchiveProcessor
public function getNumberOfVisits()
{
+ if($this->numberOfVisits === false) {
+ throw new Exception("visits should have been set here");
+ }
return $this->numberOfVisits;
}
diff --git a/core/ArchiveProcessor/Loader.php b/core/ArchiveProcessor/Loader.php
index 724dac5da0..b2ee564133 100644
--- a/core/ArchiveProcessor/Loader.php
+++ b/core/ArchiveProcessor/Loader.php
@@ -64,14 +64,14 @@ class Loader
public function prepareArchive()
{
- list($idArchive, $visits) = $this->loadExistingArchiveIdFromDb();
+ list($idArchive, $visits, $visitsConverted) = $this->loadExistingArchiveIdFromDb();
if (!empty($idArchive)) {
return $idArchive;
}
$this->prepareCoreMetricsArchive($visits);
- list($idArchive, $visits) = $this->computeNewArchive($enforceProcessCoreMetricsOnly = false, $visits);
+ list($idArchive, $visits) = $this->computeNewArchive($enforceProcessCoreMetricsOnly = false, $visits, $visitsConverted);
if ($this->isThereSomeVisits($visits)) {
return $idArchive;
}
@@ -102,23 +102,26 @@ class Loader
return $visits;
}
- protected function computeNewArchive($enforceProcessCoreMetricsOnly, $visits = false)
+ protected function computeNewArchive($enforceProcessCoreMetricsOnly, $visits = false, $visitsConverted = false)
{
$archiveWriter = new ArchiveWriter($this->params, $this->isArchiveTemporary());
-
$archiveWriter->initNewArchive();
- $pluginsArchiver = new PluginsArchiver($archiveWriter, $this->params);
+ $pluginsArchiver = new PluginsArchiver($archiveWriter, $this->params, $visits);
if($enforceProcessCoreMetricsOnly) {
- $visits = $pluginsArchiver->callAggregateCoreMetrics();
+ $metrics = $pluginsArchiver->callAggregateCoreMetrics();
+ $visits = $metrics['nb_visits'];
} else {
if ($this->mustProcessVisitCount($visits)
|| $this->doesRequestedPluginIncludeVisitsSummary()
) {
- $visits = $pluginsArchiver->callAggregateCoreMetrics();
+ $metrics = $pluginsArchiver->callAggregateCoreMetrics();
+ $visits = $metrics['nb_visits'];
+ $visitsConverted = $metrics['nb_visits_converted'];
}
if ($this->isThereSomeVisits($visits)) {
+ $pluginsArchiver->archiveProcessor->setNumberOfVisits($visits, $visitsConverted);
$pluginsArchiver->callAggregateAllPlugins();
}
}
@@ -155,12 +158,13 @@ class Loader
* Returns the idArchive if the archive is available in the database for the requested plugin.
* Returns false if the archive needs to be processed.
*
- * @return int or false
+ * @return array
*/
protected function loadExistingArchiveIdFromDb()
{
+ $noArchiveFound = array(false, false, false);
if ($this->isArchivingForcedToTrigger()) {
- return array(false, false);
+ return $noArchiveFound;
}
$minDatetimeArchiveProcessedUTC = $this->getMinTimeArchiveProcessed();
@@ -171,10 +175,9 @@ class Loader
$idAndVisits = ArchiveSelector::getArchiveIdAndVisits($site, $period, $segment, $minDatetimeArchiveProcessedUTC, $requestedPlugin);
if (!$idAndVisits) {
- return array(false, false);
+ return $noArchiveFound;
}
- list($idArchive, $visits, $visitsConverted) = $idAndVisits;
- return array($idArchive, $visits);
+ return $idAndVisits;
}
/**
diff --git a/core/ArchiveProcessor/PluginsArchiver.php b/core/ArchiveProcessor/PluginsArchiver.php
index 16dcb2afb0..c1e1e09c9d 100644
--- a/core/ArchiveProcessor/PluginsArchiver.php
+++ b/core/ArchiveProcessor/PluginsArchiver.php
@@ -58,12 +58,16 @@ class PluginsArchiver
$metrics = $this->aggregateMultipleVisitsMetrics();
}
- $visits = false;
- if (!empty($metrics)) {
- $this->archiveProcessor->setNumberOfVisits($metrics['nb_visits'], $metrics['nb_visits_converted']);
- $visits = $metrics['nb_visits'];
+ if (empty($metrics)) {
+ return array(
+ 'nb_visits' => 0,
+ 'nb_visits_converted' => 0
+ );
}
- return $visits;
+ return array(
+ 'nb_visits' => $metrics['nb_visits'],
+ 'nb_visits_converted' => $metrics['nb_visits_converted']
+ );
}
/**
@@ -74,6 +78,7 @@ class PluginsArchiver
public function callAggregateAllPlugins()
{
$isAggregateForDay = $this->archiveProcessor->getParams()->isDayArchive();
+
$archivers = $this->getPluginArchivers();
foreach($archivers as $pluginName => $archiverClass) {