/** * Processes a portal-request * * @param string $strModule * @param string $strAction * @param string $strLanguageParam * * @throws class_exception * @return string */ private function processPortalRequest($strModule, $strAction, $strLanguageParam) { $strReturn = ""; //process language-param if (class_module_system_module::getModuleByName("languages") != null) { $objLanguage = new class_module_languages_language(); $objLanguage->setStrPortalLanguage($strLanguageParam); } //Load the portal parts $objModule = class_module_system_module::getModuleByName($strModule); if ($objModule != null) { if (_xmlLoader_) { if ($objModule->getStrXmlNamePortal() != "") { $strClassname = str_replace(".php", "", $objModule->getStrXmlNamePortal()); $objModuleRequested = new $strClassname(); $strReturn = $objModuleRequested->action($strAction); } else { $objModuleRequested = $objModule->getPortalInstanceOfConcreteModule(); $strReturn = $objModuleRequested->action($strAction); } } else { if ($strModule == "pages") { $strAction = ""; } //fill the history array to track actions $objHistory = new class_history(); $objHistory->setPortalHistory(); $objModuleRequested = $objModule->getPortalInstanceOfConcreteModule(); $strReturn = $objModuleRequested->action($strAction); } } else { if (_xmlLoader_ === false) { if (count(class_carrier::getInstance()->getObjDB()->getTables()) == 0 && file_exists(_realpath_ . "/installer.php")) { class_response_object::getInstance()->setStrRedirectUrl(_webpath_ . "/installer.php"); return ""; //throw new class_exception("Module Pages not installed, redirect to installer", class_exception::$level_ERROR); } } throw new class_exception("module " . $strModule . " not installed!", class_exception::$level_FATALERROR); } return $strReturn; }