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 }
public static function getView($model) { if (!GlobalHelper::isRequestAjax()) { return self::getHTMLResponse($model); } else { return self::getAjaxResponse($model); } }
public function getView($userRequest) { $userResponse = new FrameworkResponse(); if (GlobalHelper::isRequestAjax()) { // json result for ajax call $json = array(); $userRequest->setTemplatePlace("main"); $placeResponse = FrameworkModuleManager::getModuleViewForTemplateArea(clone $userRequest); // if modules are more than one, then view separater is FrameworkModuleManager::$destMod_ModSeparator if ($placeResponse->getStatus() == FrameworkResponse::$STATUS__READY) { $json[] = $placeResponse->getJson(); } else { //ete modulneric inch vor mek@ asuma sax normal chi orinak problem ka kam STATUS__CHANGE_TEMPLATE, miangamic @ndhatum enq u et veradarznum enq verev return $placeResponse; } $userResponse->setStatus(FrameworkResponse::$STATUS__READY); $userResponse->setHtml(json_encode($json)); } else { //mixed html, script, import response for simple request $import = ""; $script = ""; $html = "<div align='center'>"; /* place - main */ $userRequest->setTemplatePlace("main"); $placeResponse = FrameworkModuleManager::getModuleViewForTemplateArea(clone $userRequest); if ($placeResponse->getStatus() == FrameworkResponse::$STATUS__READY) { $html .= $placeResponse->getHtml(); $import .= $placeResponse->getImport(); $script .= $placeResponse->getScript(); } else { //ete modulneric inch vor mek@ asuma sax normal chi orinak problem ka kam STATUS__CHANGE_TEMPLATE, miangamic @ndhatum enq u et veradarznum enq verev return $placeResponse; } $html .= "</div>"; $userResponseView = "<html><head>" . $import . "<script>var _CURRENT_TEMPLATE_ID = '" . self::getTemplateId() . "';</script></head><body>" . $html . "<script>" . $script . "</script></body></html>"; $userResponse->setStatus(FrameworkResponse::$STATUS__READY); $userResponse->setHtml($userResponseView); } return $userResponse; }
<?php session_start(); spl_autoload_register(function ($class) { require_once __DIR__ . '/' . $class . '.php'; }); use framework\FrameworkController; use lib\GlobalHelper; $responseForUser = FrameworkController::requestFromUser(); if (!GlobalHelper::isRequestAjax()) { ?> <meta charset="UTF-8"> <SCRIPT LANGUAGE='Javascript' SRC='<?php echo \Config::getBaseURL(); ?> frontend/js/jquery-2.1.1.min.js'></SCRIPT> <link rel="stylesheet" href="<?php echo \Config::getBaseURL(); ?> frontend/lib/bootstrap-3.2.0-dist/css/bootstrap.css"> <script src="<?php echo \Config::getBaseURL(); ?> frontend/lib/bootstrap-3.2.0-dist/js/bootstrap.min.js"></script> <link rel='stylesheet' href='<?php echo \Config::getBaseURL(); ?> frontend/css/main.css' type='text/css' /> <SCRIPT LANGUAGE='Javascript' SRC='<?php echo \Config::getBaseURL();