public static function requestFromUser() { $userRequest = new FrameworkRequest(); $userRequest->setHttpRequest($_REQUEST); $userResponse = new FrameworkResponse(); $userResponse->setStatus(FrameworkResponse::$STATUS__CHANGE_TEMPLATE); $userResponse->setData($userRequest->getHttpRequestParam(FrameworkRequest::$REQUEST_PARAM__templateId)); $returnView = ""; $limit = 20; $count = 0; while ($userResponse->getStatus() == FrameworkResponse::$STATUS__CHANGE_TEMPLATE) { $count++; $oldTemplateId = $userResponse->getData(); $userResponse = self::getTemplateResponse($userResponse->getData(), $userRequest); //if( $userResponse->getStatus() == FrameworkResponse::$STATUS__CHANGE_TEMPLATE && $userResponse->getData() == $oldTemplateId ){ if ($count > $limit) { throw new \Exception('My Framework Exeption: template id forever in cycle problem'); } } return $userResponse->getHtml(); }
protected function chooseActionByModelStatus($userRequest, $model, $actionMap, $viewClass) { $templatesMap = array($userRequest->getTemplateId(), "*"); foreach ($templatesMap as $templ) { foreach ($actionMap as $action) { //@ste hima stugvuma menak cherez model_state bayc piti stugvi naev cherez template_id if ($action["templateId"] == $templ && $action["moduleState"] == $model->getCurrentState()) { if ($action["action"] == "changeTemplate") { if (GlobalHelper::isRequestAjax()) { //JS change template $res = new FrameworkResponse(); $res->setStatus(FrameworkResponse::$STATUS__READY); $res->changeTemplate($action["actionParam"] . "&" . $userRequest->getHttpRequestParamsStr(array(FrameworkRequest::$REQUEST_PARAM__templateId, FrameworkRequest::$REQUEST_PARAM__ajaxCall))); } else { //PHP change template $res = new FrameworkResponse(); $res->setStatus(FrameworkResponse::$STATUS__CHANGE_TEMPLATE); $res->setData($action["actionParam"]); } return $res; } } } } return $viewClass::getView($model); //call_user_func }