From 9663a0143df5d1a6097c48c990636bd8cbb28d83 Mon Sep 17 00:00:00 2001 From: mattab <matthieu.aubry@gmail.com> Date: Thu, 10 Apr 2014 17:41:12 +1200 Subject: [PATCH] Fix bug when a plugin is deactivated within the Tracker process. It used to set the Plugins[] array to PluginsTracker[] since it was using pluginsToLoad (and in Tracker only tracking plugins are loaded) --- core/Plugin/Manager.php | 21 +++++++++++++++++---- core/Version.php | 2 +- tests/PHPUnit/UI | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php index 924954b4a6..9a213ec29c 100644 --- a/core/Plugin/Manager.php +++ b/core/Plugin/Manager.php @@ -179,10 +179,10 @@ class Manager extends Singleton * * @param array $plugins Plugins */ - private function updatePluginsConfig() + private function updatePluginsConfig($pluginsToLoad) { $section = PiwikConfig::getInstance()->Plugins; - $section['Plugins'] = $this->pluginsToLoad; + $section['Plugins'] = $pluginsToLoad; PiwikConfig::getInstance()->Plugins = $section; } @@ -394,7 +394,7 @@ class Manager extends Singleton $this->pluginsToLoad[] = $pluginName; - $this->updatePluginsConfig(); + $this->updatePluginsConfig($this->pluginsToLoad); PiwikConfig::getInstance()->forceSave(); $this->clearCache($pluginName); @@ -1075,6 +1075,19 @@ class Manager extends Singleton $this->updatePluginsInstalledConfig($pluginsInstalled); } + /** + * @param $pluginName + */ + private function removePluginFromPluginsConfig($pluginName) + { + $pluginsEnabled = PiwikConfig::getInstance()->Plugins['Plugins']; + $key = array_search($pluginName, $pluginsEnabled); + if ($key !== false) { + unset($pluginsEnabled[$key]); + } + $this->updatePluginsConfig($pluginsEnabled); + } + private function removePluginFromTrackerConfig($pluginName) { $pluginsTracker = PiwikConfig::getInstance()->Plugins_Tracker['Plugins_Tracker']; @@ -1166,7 +1179,7 @@ class Manager extends Singleton */ private function removePluginFromConfig($pluginName) { - $this->updatePluginsConfig(); + $this->removePluginFromPluginsConfig($pluginName); $this->removePluginFromTrackerConfig($pluginName); PiwikConfig::getInstance()->forceSave(); } diff --git a/core/Version.php b/core/Version.php index 0f09affc28..2a2ab3727b 100644 --- a/core/Version.php +++ b/core/Version.php @@ -21,5 +21,5 @@ final class Version * The current Piwik version. * @var string */ - const VERSION = '2.2.0-b18'; + const VERSION = '2.2.0-b19'; } diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI index 9d2267f0b3..7097a433d7 160000 --- a/tests/PHPUnit/UI +++ b/tests/PHPUnit/UI @@ -1 +1 @@ -Subproject commit 9d2267f0b3c88a98a8e780d79c170cd6803fab80 +Subproject commit 7097a433d7fdd363adfba18971a16d738287b972 -- GitLab