public function loadPluginsRegistry($pluginFolder, $confFolder) { $this->pluginFolder = $pluginFolder; $this->confFolder = $confFolder; $handler = opendir($pluginFolder); $pluginsPool = array(); if ($handler) { while (($item = readdir($handler)) !== false) { if ($item == "." || $item == ".." || !is_dir($pluginFolder . "/" . $item) || strstr($item, ".") === false) { continue; } $plugin = new AJXP_Plugin($item, $pluginFolder . "/" . $item); $plugin->loadManifest(); if ($plugin->manifestLoaded()) { $pluginsPool[$plugin->getId()] = $plugin; if (method_exists($plugin, "detectStreamWrapper")) { if ($plugin->detectStreamWrapper(false) !== false) { $this->streamWrapperPlugins[] = $plugin->getId(); } } } } closedir($handler); } if (count($pluginsPool)) { $this->checkDependencies($pluginsPool); foreach ($pluginsPool as $plugin) { $this->recursiveLoadPlugin($plugin, $pluginsPool); } } }
public function loadPluginsRegistry($pluginFolder, $confFolder) { $this->pluginFolder = $pluginFolder; $this->confFolder = $confFolder; $handler = opendir($pluginFolder); $beforeSort = array(); if ($handler) { while (($item = readdir($handler)) !== false) { if ($item == "." || $item == ".." || !is_dir($pluginFolder . "/" . $item) || strstr($item, ".") === false) { continue; } $plugin = new AJXP_Plugin($item, $pluginFolder . "/" . $item); $plugin->loadManifest(); if ($plugin->manifestLoaded()) { $beforeSort[$plugin->getId()] = $plugin; } } closedir($handler); } if (count($beforeSort)) { $this->checkDependencies($beforeSort); $this->usort($beforeSort); foreach ($beforeSort as $plugin) { $plugType = $plugin->getType(); if (!isset($this->registry[$plugType])) { $this->registry[$plugType] = array(); } $plugin = $this->instanciatePluginClass($plugin); if (is_file($this->confFolder . "/conf." . $plugin->getId() . ".inc")) { $plugin->loadConfig($this->confFolder . "/conf." . $plugin->getId() . ".inc", "inc"); } $this->registry[$plugType][$plugin->getName()] = $plugin; } } }
/** * Simply load a plugin class, without the whole dependencies et.all * @param string $pluginId * @param array $pluginOptions * @return AJXP_Plugin */ public function softLoad($pluginId, $pluginOptions) { // Try to get from cache list($type, $name) = explode(".", $pluginId); if (!empty($this->registry) && isset($this->registry[$type][$name])) { /** * @var AJXP_Plugin $plugin */ $plugin = $this->registry[$type][$name]; $plugin->init($pluginOptions); return clone $plugin; } $plugin = new AJXP_Plugin($pluginId, AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/" . $pluginId); $plugin->loadManifest(); $plugin = $this->instanciatePluginClass($plugin); $plugin->loadConfigs(array()); // Load default $plugin->init($pluginOptions); return $plugin; }
/** * Simply load a plugin class, without the whole dependencies et.all * @param string $pluginId * @param array $pluginOptions * @return AJXP_Plugin */ public function softLoad($pluginId, $pluginOptions) { $plugin = new AJXP_Plugin($pluginId, AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/" . $pluginId); $plugin->loadManifest(); $plugin = $this->instanciatePluginClass($plugin); $plugin->init($pluginOptions); return $plugin; }