From 599ff6f0980eabcabec6cbece067bd3697e33264 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Tue, 22 Oct 2013 19:36:00 +0000 Subject: refs #4126 plugins just have to create a settings.php, there is no longer a need to use a hook --- core/Settings/Manager.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'core/Settings') diff --git a/core/Settings/Manager.php b/core/Settings/Manager.php index a79c672a38..7c9767edc6 100644 --- a/core/Settings/Manager.php +++ b/core/Settings/Manager.php @@ -30,14 +30,15 @@ class Manager { if (empty(static::$settings)) { - $pluginSettings = array(); - // TODO: document hook and think about better name + $settings = array(); - Piwik::postEvent('Plugin.addSettings', array(&$pluginSettings)); + $pluginNames = \Piwik\Plugin\Manager::getInstance()->getLoadedPluginsName(); + foreach ($pluginNames as $pluginName) { + $klassName = 'Piwik\\Plugins\\' . $pluginName . '\\Settings'; - $settings = array(); - foreach ($pluginSettings as $pluginName => $pluginSetting) { - $settings[$pluginName] = new $pluginSetting($pluginName); + if (class_exists($klassName) && is_subclass_of($klassName, 'Piwik\\Plugin\\Settings')) { + $settings[$pluginName] = new $klassName($pluginName); + } } static::$settings = $settings; @@ -62,4 +63,5 @@ class Manager return false; } + } -- cgit v1.2.3