public function dispatch() { $rootPath = $this->_rootPath; $modulesDAO = new RM_Modules(); $modules = $modulesDAO->fetchAll(); $pluginsDAO = new RM_Plugins(); $plugins = $pluginsDAO->fetchAll(); $frontController = Zend_Controller_Front::getInstance(); $frontController->setDispatcher($this->getDispatcher()); $frontController->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array('module' => $this->getModule(), 'controller' => 'Error', 'action' => 'error'))); $frontController->setDefaultModule($this->_module); $frontController->throwExceptions(false); $controllerPathes = array('admin' => array(), 'user' => array()); $coreControllers = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'system', 'application', 'controllers')) . DIRECTORY_SEPARATOR; $controllerPathes['admin'][] = $coreControllers; $controllerPathes['user'][] = $coreControllers; foreach ($modules as $module) { $controllerPathes['admin'][] = $controllerPathes['user'][] = RM_Module_Manager::getModuleFolderpath($module->name, $this->_rootPath) . DIRECTORY_SEPARATOR . RM_Module_Config::CONTROLLERS; } foreach ($plugins as $plugin) { $controllerPathes['admin'][] = $controllerPathes['user'][] = RM_Plugin_Manager::getPluginFolderpath($plugin->name, $this->_rootPath) . DIRECTORY_SEPARATOR . RM_Plugin_Config::CONTROLLERS; } $frontController->setControllerDirectory($controllerPathes); $scriptPathes = array(); foreach ($modules as $module) { $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'modules', $module->name, RM_Module_Config::VIEWS, 'admin', 'scripts')) . DIRECTORY_SEPARATOR; $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'modules', $module->name, RM_Module_Config::VIEWS, 'user', 'scripts')) . DIRECTORY_SEPARATOR; } foreach ($plugins as $plugin) { $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'plugins', $plugin->name, RM_Plugin_Config::VIEWS, 'admin', 'scripts')) . DIRECTORY_SEPARATOR; $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'plugins', $plugin->name, RM_Plugin_Config::VIEWS, 'user', 'scripts')) . DIRECTORY_SEPARATOR; } $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'views', 'admin', 'scripts')) . DIRECTORY_SEPARATOR; $scriptPathes[] = implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'views', 'user', 'scripts')) . DIRECTORY_SEPARATOR; $view = new RM_View(); $view->addScriptPath($scriptPathes); $viewRenderer = new RM_Controller_Action_Helper_ViewRenderer($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); $router = RM_Environment::getInstance()->getRouter(); $frontController->setRouter($router); Zend_Layout::startMvc(array('layout' => $this->_module, 'layoutPath' => implode(DIRECTORY_SEPARATOR, array($rootPath, 'RM', 'userdata', 'layouts')))); $model = new RM_Modules(); $modules = $model->fetchAllEnabled(); $manager = new RM_Module_Manager(); foreach ($modules as $module) { $moduleObject = $manager->getModule($module->name); if ($moduleObject instanceof RM_System_Setup) { $moduleObject->preDispatch(); } } $frontController->dispatch($this->getRequestHTTP()); }
/** * Get all form panels returns JSON with title and link to JS * */ public function helppageAction() { ob_clean(); $view = new RM_View(); $view->addScriptPath(implode(DIRECTORY_SEPARATOR, array(RM_Environment::getConnector()->getRootPath(), 'RM', 'userdata', 'modules', 'FormDesigner', 'views', 'admin', 'scripts', 'FormDesigner'))); echo $view->render('help.phtml'); die; }