public function redirectToLoad($load, $args, $statusCode = 200) { $this->setStatusCode($statusCode); if (isset($args)) { NgsArgs::getInstance()->setArgs($args); } $actionArr = NGS()->getRoutesEngine()->getLoadORActionByAction($load); NGS()->getDispatcher()->loadPage($actionArr["action"]); }
/** * this method manage mathced routes * * @param array $routesArr * * @return void */ public function dispatch() { try { $routesArr = NGS()->getRoutesEngine()->getDynamicLoad(NGS()->getHttpUtils()->getRequestUri()); if ($routesArr["matched"] === false) { throw new NotFoundException("Load/Action Not found"); } if (isset($routesArr["args"])) { NgsArgs::getInstance()->setArgs($routesArr["args"]); } switch ($routesArr["type"]) { case 'load': NGS()->getTemplateEngine(); $this->loadPage($routesArr["action"]); break; case 'action': NGS()->getTemplateEngine(); $this->doAction($routesArr["action"]); break; case 'file': $this->streamStaticFile($routesArr); break; } } catch (DebugException $ex) { if (NGS()->getEnvironment() != "production") { $ex->display(); return; } $routesArr = NGS()->getRoutesEngine()->getNotFoundLoad(); if ($routesArr == null) { echo "404 :)"; exit; } $this->loadPage($routesArr["action"]); } catch (RedirectException $ex) { NGS()->getHttpUtils()->redirect($ex->getRedirectTo()); } catch (NotFoundException $ex) { if ($ex->getRedirectUrl() != "") { NGS()->getHttpUtils()->redirect($ex->getRedirectUrl()); return; } $routesArr = NGS()->getRoutesEngine()->getNotFoundLoad(); if ($routesArr == null) { echo "404 :)"; exit; } $this->loadPage($routesArr["action"]); } }
/** * in this method implemented * nested load functional * * @abstract * @access public * @param String $namespace * @param array $loadArr * * @throws NoAccessException * * @return void */ public final function nest($namespace, $loadArr) { $actionArr = NGS()->getRoutesEngine()->getLoadORActionByAction($loadArr["action"]); $loadObj = new $actionArr["action"](); //set that this load is nested $loadObj->setIsNestedLoad(true); $loadObj->setNgsWrappingLoad($this); if (isset($loadArr["args"])) { NgsArgs::getInstance()->setArgs($loadArr["args"]); } $loadObj->setLoadName($loadArr["action"]); $loadObj->initialize(); if (NGS()->getSessionManager()->validateRequest($loadObj) === false) { $loadObj->onNoAccess(); } $loadObj->service(); if (NGS()->isJsFrameworkEnable() && NGS()->getHttpUtils()->isAjaxRequest()) { NGS()->getLoadMapper()->setNestedLoads($this->getLoadName(), $loadArr["action"], $loadObj->getJsonParams()); } if (!isset($this->params["inc"])) { $this->params["inc"] = array(); } $this->setNestedLoadParams($namespace, $loadArr["action"], $loadObj); $this->params = array_merge($this->getParams(), $loadObj->getParentParams()); }
public function args() { return NgsArgs::getInstance(); }