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;
 }