public function dispatche() { $MODULE_KEY = null; $CONTROLLER_KEY = null; $ACTION_KEY = null; $PARAMS = null; $LOCALIZATION = null; $ALL_ARGUMENTS = null; $ALL_ARGUMENTS = $this->GetAllArgumentsFromUri(); if (isset($ALL_ARGUMENTS[self::MODULE_LC])) { $MODULE_KEY = $ALL_ARGUMENTS[self::MODULE_LC]; } if (isset($ALL_ARGUMENTS[self::CONTROLLER_LC])) { $CONTROLLER_KEY = $ALL_ARGUMENTS[self::CONTROLLER_LC]; } if (isset($ALL_ARGUMENTS[self::ACTION_LC])) { $ACTION_KEY = $ALL_ARGUMENTS[self::ACTION_LC]; } if (isset($ALL_ARGUMENTS[self::XML])) { self::$_is_xml = $ALL_ARGUMENTS[self::XML] == '1' ? true : false; self::$_is_ajax = !self::$_is_xml; } if (!empty($ALL_ARGUMENTS[self::PARAMS])) { $PARAMS = $ALL_ARGUMENTS[self::PARAMS]; } $oRouter = new RouterControllerHelper(array(self::MODULE_LC => isset($MODULE_KEY) ? $MODULE_KEY : \RouterSettings::GetDefaultModuleName(), self::CONTROLLER_LC => isset($CONTROLLER_KEY) ? $CONTROLLER_KEY : self::KEY_DEFAULT, self::ACTION_LC => isset($ACTION_KEY) ? $ACTION_KEY : self::KEY_DEFAULT)); // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " oRouter object" . print_r($oRouter,true)); $this->checkModule($oRouter); $this->checkController($oRouter); $this->checkAction($oRouter); $oRouter->SetCurrentUrl(array(self::MODULE_LC => $oRouter->_module->GetUrl(), self::CONTROLLER_LC => $oRouter->_controller->GetUrl(), self::ACTION_LC => $oRouter->_action->GetUrl(), self::PARAMS => $PARAMS)); /** * Call class section */ $NAMESPACE = $oRouter->_module->GetNamespace(); $CLASS_NAME = $oRouter->_controller->GetClassName(); $METHOD_NAME = $oRouter->_action->GetMethodName(); /** * Set static properties */ self::$_current_params = $PARAMS; self::$_router = $oRouter; $class = self::_compileClass($NAMESPACE, $CLASS_NAME); $oController = new $class(); /* * Check ACL */ if ($this->SetAcl($oRouter, $PARAMS) === false) { // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " Does not pass ACL" . print_r($oRouter,true)); $this->Redirect(array(self::MODULE_LC => \RouterSettings::GetErrorModule($oRouter->_module->GetUrl()), self::CONTROLLER_LC => \RouterSettings::GetErrorController($oRouter->_controller->GetUrl()), self::ACTION_LC => \RouterSettings::GetErrorAction($oRouter->_action->GetUrl()), self::REDIRECT_PARAMETERS => \AclSettings::GetErrorParams($PARAMS))); } /* * Load() Controller. Execute bussiness logic */ $oController->{$METHOD_NAME}($PARAMS); }