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/Columns/Updater.php49
-rw-r--r--core/Updater.php7
-rw-r--r--tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml6
3 files changed, 41 insertions, 21 deletions
diff --git a/core/Columns/Updater.php b/core/Columns/Updater.php
index c04779a81c..d092cd308a 100644
--- a/core/Columns/Updater.php
+++ b/core/Columns/Updater.php
@@ -163,27 +163,52 @@ class Updater extends \Piwik\Updates
$versions = array();
+ $visitColumns = DbHelper::getTableColumns(Common::prefixTable('log_visit'));
+ $actionColumns = DbHelper::getTableColumns(Common::prefixTable('log_link_visit_action'));
+ $conversionColumns = DbHelper::getTableColumns(Common::prefixTable('log_conversion'));
+
foreach (VisitDimension::getAllDimensions() as $dimension) {
- $columnName = $dimension->getColumnName();
- if ($columnName && $dimension->hasColumnType()) {
- $versions['log_visit.' . $columnName] = $dimension->getVersion();
- }
+ $versions = self::mixinVersions($dimension, 'log_visit.', $visitColumns, $versions);
}
foreach (ActionDimension::getAllDimensions() as $dimension) {
- $columnName = $dimension->getColumnName();
- if ($columnName && $dimension->hasColumnType()) {
- $versions['log_link_visit_action.' . $columnName] = $dimension->getVersion();
- }
+ $versions = self::mixinVersions($dimension, 'log_link_visit_action.', $actionColumns, $versions);
}
foreach (ConversionDimension::getAllDimensions() as $dimension) {
- $columnName = $dimension->getColumnName();
- if ($columnName && $dimension->hasColumnType()) {
- $versions['log_conversion.' . $columnName] = $dimension->getVersion();
- }
+ $versions = self::mixinVersions($dimension, 'log_conversion.', $conversionColumns, $versions);
+ }
+
+ return $versions;
+ }
+
+ /**
+ * @param ActionDimension|ConversionDimension|VisitDimension $dimension
+ * @param string $componentPrefix
+ * @param array $columns
+ * @param array $versions
+ * @return array The modified versions array
+ */
+ private static function mixinVersions($dimension, $componentPrefix, $columns, $versions)
+ {
+ $columnName = $dimension->getColumnName();
+
+ if (!$columnName || !$dimension->hasColumnType()) {
+ return $versions;
}
+ $component = $componentPrefix . $columnName;
+ $version = $dimension->getVersion();
+
+ if (in_array($columnName, $columns)
+ && false === PiwikUpdater::getCurrentRecordedComponentVersion($component)
+ && self::wasDimensionMovedFromCoreToPlugin($component, $version)) {
+ PiwikUpdater::recordComponentSuccessfullyUpdated($component, $version);
+ return $versions;
+ }
+
+ $versions[$component] = $version;
+
return $versions;
}
diff --git a/core/Updater.php b/core/Updater.php
index 79754172d9..2e2d4cc6ab 100644
--- a/core/Updater.php
+++ b/core/Updater.php
@@ -67,7 +67,7 @@ class Updater
* @return false|string
* @throws \Exception
*/
- private static function getCurrentRecordedComponentVersion($name)
+ public static function getCurrentRecordedComponentVersion($name)
{
try {
$currentVersion = Option::get(self::getNameInOptionTable($name));
@@ -303,11 +303,6 @@ class Updater
$currentVersion = self::getCurrentRecordedComponentVersion($name);
if (ColumnUpdater::isDimensionComponent($name)) {
- if ($currentVersion === false && ColumnUpdater::wasDimensionMovedFromCoreToPlugin($name, $version)) {
- self::recordComponentSuccessfullyUpdated($name, $version);
- continue;
- }
-
$isComponentOutdated = $currentVersion !== $version;
} else {
// note: when versionCompare == 1, the version in the DB is newer, we choose to ignore
diff --git a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index 588a8e12b4..cfcf4e9a0b 100644
--- a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -131,14 +131,14 @@
<row>
<type>dimension</type>
<category>Visit</category>
- <name>ExamplePlugin_DimensionName</name>
+ <name>Example Dimension</name>
<segment>myConversionSegmentName</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues>
</row>
<row>
<type>dimension</type>
<category>Visit</category>
- <name>ExamplePlugin_DimensionName</name>
+ <name>Example Dimension</name>
<segment>achievementPoints</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues>
</row>
@@ -395,7 +395,7 @@
<row>
<type>dimension</type>
<category>Actions</category>
- <name>ExamplePlugin_DimensionName</name>
+ <name>Example Dimension</name>
<segment>keywords</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any word, for instance MyKeyword1, MyKeyword2</acceptedValues>
</row>