Esempio n. 1
0
 /**
  * Initializes the the extension manager which in turn scans
  * for components, modules, plugins and wrapper and registers them.
  *
  * @since 0.9.5
  */
 public function _initExtensionManager()
 {
     // require Front controller
     $this->bootstrap('frontController');
     $frontController = $this->getResource('frontController');
     // require Config
     $this->bootstrap('Config');
     $config = $this->getResource('Config');
     //NOTICE: i swtiched loading of erfurt and session
     //because serialized erfurt objects in the session need constants defined in erfurt
     //is this ok?
     Erfurt_Wrapper_Registry::reset();
     // require Erfurt
     $this->bootstrap('Erfurt');
     // apply session configuration settings
     if (isset($config->session)) {
         $this->applySessionConfig($config->session);
     }
     // require Session
     $this->bootstrap('Session');
     // require Dispatcher
     $this->bootstrap('Dispatcher');
     $dispatcher = $this->getResource('Dispatcher');
     // require OntoWiki
     $this->bootstrap('OntoWiki');
     $ontoWiki = $this->getResource('OntoWiki');
     // require Translate
     $this->bootstrap('Translate');
     $translate = $this->getResource('Translate');
     // require View
     $this->bootstrap('View');
     $view = $this->getResource('View');
     // make sure router is bootstrapped
     $this->bootstrap('Router');
     // set view
     $ontoWiki->view = $view;
     $extensionPath = ONTOWIKI_ROOT . $config->extensions->base;
     $extensionPathBase = $config->staticUrlBase . $config->extensions->base;
     $extensionManager = new OntoWiki_Extension_Manager($extensionPath);
     $extensionManager->setTranslate($translate)->setComponentUrlBase($extensionPathBase);
     // register component controller directories
     foreach ($extensionManager->getComponents() as $extensionName => $extensionConfig) {
         $frontController->addControllerDirectory($extensionConfig->path, '_component_' . $extensionName);
     }
     // make extension manager available to dispatcher
     $dispatcher = $frontController->getDispatcher();
     $dispatcher->setExtensionManager($extensionManager);
     // keep extension manager in OntoWiki
     $ontoWiki->extensionManager = $extensionManager;
     // actionhelper
     Zend_Controller_Action_HelperBroker::addPrefix('OntoWiki_Controller_ActionHelper_');
     Zend_Controller_Action_HelperBroker::addHelper(new OntoWiki_Controller_ActionHelper_List());
     return $extensionManager;
 }