From 1c0f6d899f82cb7c7f77fc5559ca91c1090e9236 Mon Sep 17 00:00:00 2001
From: diosmosis <benaka@piwik.pro>
Date: Sun, 4 Oct 2015 05:41:21 -0700
Subject: [PATCH] Make sure plugin environment files are loaded after the base
 environment config file instead of before w/ the plugin config.php.

Doing it the old way causes plugin environment specifc config to be unset by the core environment config (eg, a plugins' test.php will have no effect, because core/config/test.php ends up overriding it).
---
 core/Container/ContainerFactory.php | 18 +++++++++++-------
 plugins/CustomAlerts                |  2 +-
 plugins/QueuedTracking              |  2 +-
 plugins/SecurityInfo                |  2 +-
 plugins/TasksTimetable              |  2 +-
 plugins/TreemapVisualization        |  2 +-
 plugins/VisitorGenerator            |  2 +-
 7 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/core/Container/ContainerFactory.php b/core/Container/ContainerFactory.php
index 4a61bc73e3..75735036aa 100644
--- a/core/Container/ContainerFactory.php
+++ b/core/Container/ContainerFactory.php
@@ -116,6 +116,17 @@ class ContainerFactory
         if (file_exists($file)) {
             $builder->addDefinitions($file);
         }
+
+        // add plugin environment configs
+        $plugins = $this->pluginList->getActivatedPlugins();
+        foreach ($plugins as $plugin) {
+            $baseDir = Manager::getPluginsDirectory() . $plugin;
+
+            $environmentFile = $baseDir . '/config/' . $environment . '.php';
+            if (file_exists($environmentFile)) {
+                $builder->addDefinitions($environmentFile);
+            }
+        }
     }
 
     private function addPluginConfigs(ContainerBuilder $builder)
@@ -129,13 +140,6 @@ class ContainerFactory
             if (file_exists($file)) {
                 $builder->addDefinitions($file);
             }
-
-            foreach ($this->environments as $environment) {
-                $environmentFile = $baseDir . '/config/' . $environment . '.php';
-                if (file_exists($environmentFile)) {
-                    $builder->addDefinitions($environmentFile);
-                }
-            }
         }
     }
 
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
index eeaa41b2ac..e16861f1d8 160000
--- a/plugins/CustomAlerts
+++ b/plugins/CustomAlerts
@@ -1 +1 @@
-Subproject commit eeaa41b2ac0aa559caf2ef7c1be3b893de69c795
+Subproject commit e16861f1d8b77fdf3151d31a795a10c3bc5d3ba9
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
index 35288ec165..efe6eca0e5 160000
--- a/plugins/QueuedTracking
+++ b/plugins/QueuedTracking
@@ -1 +1 @@
-Subproject commit 35288ec165fc085360ec77b441dc25f51e04cd5f
+Subproject commit efe6eca0e514d97a299c10d8a1f94352a2fe5a30
diff --git a/plugins/SecurityInfo b/plugins/SecurityInfo
index 65c7b5a169..42dcc8dc9c 160000
--- a/plugins/SecurityInfo
+++ b/plugins/SecurityInfo
@@ -1 +1 @@
-Subproject commit 65c7b5a1693b99dc97b78df015df1f606b2ef8b2
+Subproject commit 42dcc8dc9ccde4b8ff819bf05bbe3c3f862f39eb
diff --git a/plugins/TasksTimetable b/plugins/TasksTimetable
index 32915362e3..a994e842e6 160000
--- a/plugins/TasksTimetable
+++ b/plugins/TasksTimetable
@@ -1 +1 @@
-Subproject commit 32915362e3f90f8e98929108ccc13695a820c2fd
+Subproject commit a994e842e6a6db74001eff2107dab70c0dd2b274
diff --git a/plugins/TreemapVisualization b/plugins/TreemapVisualization
index 9640640f7b..b39f286d93 160000
--- a/plugins/TreemapVisualization
+++ b/plugins/TreemapVisualization
@@ -1 +1 @@
-Subproject commit 9640640f7b49374790330699c9985634ecb9c0ae
+Subproject commit b39f286d93156d280c3b8f02f9637f20971a5fc7
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
index 6ef251bbe3..a52e046866 160000
--- a/plugins/VisitorGenerator
+++ b/plugins/VisitorGenerator
@@ -1 +1 @@
-Subproject commit 6ef251bbe316882c010408180c293af3b2a2ef2a
+Subproject commit a52e046866d7d0ab330bf6d7466e86dda82962ab
-- 
GitLab