pluginmanager fix

This commit is contained in:
kremsy 2014-02-14 18:17:05 +01:00 committed by Steffen Schröder
parent 3022e33bda
commit e4a0ac2207
2 changed files with 15 additions and 7 deletions

View File

@ -180,16 +180,23 @@ class PluginManager {
return true; return true;
} }
/** /**
* Load complete plugins directory and start all configured plugins * Load complete plugins directory and start all configured plugins
*/ */
public function loadPlugins() { public function loadPlugins($dir = '') {
$pluginsDirectory = ManiaControlDir . '/plugins/'; $pluginsDirectory = ManiaControlDir . '/plugins/' . $dir . '/';
$pluginFiles = scandir($pluginsDirectory, 0); $pluginFiles = scandir($pluginsDirectory, 0);
foreach($pluginFiles as $pluginFile) { foreach($pluginFiles as $pluginFile) {
if (stripos($pluginFile, '.') === 0) { if (stripos($pluginFile, '.') === 0) {
continue; continue;
} }
if (is_dir($pluginsDirectory . $pluginFile)) {
$this->loadPlugins($pluginFile);
continue;
}
$classesBefore = get_declared_classes(); $classesBefore = get_declared_classes();
$success = include_once $pluginsDirectory . $pluginFile; $success = include_once $pluginsDirectory . $pluginFile;
if (!$success) { if (!$success) {
@ -201,6 +208,7 @@ class PluginManager {
if (!$this->isPluginClass($className)) { if (!$this->isPluginClass($className)) {
continue; continue;
} }
//Prepare Plugin //Prepare Plugin
$className::prepare($this->maniaControl); $className::prepare($this->maniaControl);