diff options
Diffstat (limited to 'src/lib/PluginManager.class.php')
-rw-r--r-- | src/lib/PluginManager.class.php | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/lib/PluginManager.class.php b/src/lib/PluginManager.class.php deleted file mode 100644 index ce5a3ef..0000000 --- a/src/lib/PluginManager.class.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -require_once('Singleton.class.php'); -require_once('Database.class.php'); - -class PluginManager extends Singleton { - public $plugins = array(); - private $loaded = false; - - /** - * Return an instance of the plugin with $plugin_name - */ - public function loadPlugin($plugin_name) { - $db = Database::getInstance(); - - require_once("$plugin_name.class.php"); - $obj = new $plugin_name; - $params = call_user_func("$plugin_name::configList"); - foreach ($params as $param => $type) { - $value = $db->getPluginConf($plugin_name, $param); - if ($value!==false) { - switch ($type) { - case 'text': - case 'password': - $value = "$value"; - break; - case 'int': - $value = (int)$value; - break; - } - $obj->configSet($param, $value); - } - } - return $obj; - } - - /** - * Return an array of available plugin names. - */ - public function listPlugins() { - $plugins = array(); - - $dirs = explode(PATH_SEPARATOR, PLUGINPATH); - foreach ($dirs as $dir) { - // Find all files in $dir with the ext `.class.php' - $files = glob($dir.'/*.class.php'); - foreach ($files as $file) { - $plugins[] = preg_replace('@\.class\.php$@', '$1', basename($file)); - } - } - - return $plugins; - } - - /** - * Return an array of enabled plugin names. - */ - public function getActivePlugins() { - $db = Database::getInstance(); - $string = $db->getSysConf('plugins'); - return $db->valueToArray($string); - } - - /** - * Set the enabled plugins. - */ - public function setActivePlugins($plugins) { - $db = Database::getInstance(); - $string = $db->arrayToValue($plugins); - return $db->setSysConf('plugins', $string); - } - - /** - * Load the enabled plugins. - */ - public function loadPlugins() { - if ($this->loaded) return; - $plugin_names = $this->getActivePlugins(); - foreach ($plugin_names as $name) { - $this->plugins[$name] = $this->loadPlugin($name); - } - $this->loaded = true; - } - - public function callHook($hook, $arg=null) { - $this->loadPlugins(); - $ret = array(); - foreach ($this->plugins as $name => $plugin) { - $ret[$name] = call_user_func(array($plugin, $hook), - &$arg); - } - return $ret; - } - - public function staticHook($plugin_name, $hook) { - require_once("$plugin_name.class.php"); - return call_user_func("$plugin_name::$hook"); - } - -} |