script settings and plugin configurators improvements

This commit is contained in:
Steffen Schröder
2013-12-12 19:41:37 +01:00
parent 196b6eeee4
commit 30717ce343
4 changed files with 185 additions and 89 deletions

View File

@ -26,7 +26,6 @@ class PluginManager {
private $activePlugins = array();
private $pluginClasses = array();
/**
* Construct plugin manager
*
@ -138,6 +137,40 @@ class PluginManager {
return $active;
}
/**
* Activate and start the plugin with the given name
*
* @param string $pluginClass
* @return bool
*/
public function activatePlugin($pluginClass) {
if (!in_array($pluginClass, $this->pluginClasses)) {
return false;
}
if (isset($this->activePlugins[$pluginClass])) {
return false;
}
$this->savePluginStatus($pluginClass, true);
return true;
}
/**
* Deactivate the plugin with the given name
*
* @param string $pluginClass
* @return bool
*/
public function deactivatePlugin($pluginClass) {
if (!in_array($pluginClass, $this->pluginClasses)) {
return false;
}
if (!isset($this->activePlugins[$pluginClass])) {
return false;
}
$this->savePluginStatus($pluginClass, false);
return true;
}
/**
* Load complete plugins directory and start all configured plugins
*/
@ -165,24 +198,26 @@ class PluginManager {
continue;
}
$plugin = new $className($this->maniaControl);
array_push($this->activePlugins, $plugin);
$this->activePlugins[$className] = $plugin;
}
}
}
/**
* Get all declared plugin class names
*
* @return array
*/
public function getPluginClasses()
{
public function getPluginClasses() {
return $this->pluginClasses;
}
/**
* Get all active plugins
*
* @return array
*/
public function getActivePlugins()
{
public function getActivePlugins() {
return $this->activePlugins;
}
}