diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2013-10-22 23:36:00 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2013-10-22 23:36:00 +0400 |
commit | 599ff6f0980eabcabec6cbece067bd3697e33264 (patch) | |
tree | 28d1363acf4c191956a0678d0462e4c8325835ed /core/Settings | |
parent | f70afa24a0c619d93598c308325fc8c3b38a16b8 (diff) |
refs #4126 plugins just have to create a settings.php, there is no longer a need to use a hook
Diffstat (limited to 'core/Settings')
-rw-r--r-- | core/Settings/Manager.php | 14 |
1 files changed, 8 insertions, 6 deletions
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; } + } |