Esempio n. 1
0
 public static function getTemplate($moduleName, $controllerName, $actionName)
 {
     if (is_null(TemplateMapper::$templates)) {
         TemplateMapper::templates();
     }
     if (is_null(TemplateMapper::$templates)) {
         return NULL;
     }
     foreach (TemplateMapper::$templates as $mapModuleName => $controllerAction) {
         if ($moduleName == $mapModuleName) {
             if (isset(TemplateMapper::$templates[$mapModuleName]["ALL"])) {
                 return TemplateMapper::$templates[$mapModuleName]["ALL"]["ALL"];
             }
             foreach ($controllerAction as $mapControllerName => $action) {
                 if ($moduleName == $mapModuleName) {
                     if ($controllerName == $mapControllerName || $controllerName == Route::fromHyphenToCamelCase($mapControllerName, TRUE)) {
                         if (isset(TemplateMapper::$templates[$mapModuleName][$mapControllerName]["ALL"])) {
                             return TemplateMapper::$templates[$mapModuleName][$mapControllerName]["ALL"];
                         }
                     }
                 }
                 foreach ($action as $mapActionName => $tpl) {
                     if ($moduleName == $mapModuleName) {
                         if ($controllerName == $mapControllerName || $controllerName == Route::fromHyphenToCamelCase($mapControllerName, TRUE)) {
                             if ($actionName == $mapActionName || $actionName == Route::fromHyphenToCamelCase($mapActionName, FALSE)) {
                                 return $tpl;
                             }
                         }
                     }
                 }
             }
         }
     }
     return NULL;
 }
Esempio n. 2
0
 /**
  * This method forward to the action.
  *
  * @param object $Router the instance of the Router class.
  */
 public static function run($request, $subMvc)
 {
     TemplateMapper::templates();
     $tpl = TemplateMapper::getTemplate($subMvc->moduleName(), $subMvc->controllerName(), $subMvc->actionName());
     require_once Mvc::$currentApp->documentRoot() . "/" . $subMvc->controllerFile();
     $controller = $subMvc->controllerClassName();
     $action = $subMvc->actionFunctionName();
     $subController = new $controller();
     $subController->setParams($request->params());
     $subController->setRequest($request);
     $subController->setDefaultModel();
     $subController->setSubMvc($subMvc);
     $subController->setDefaultView($tpl, true);
     //init method acts as a constructor after all the variables being set
     $subController->init();
     if (method_exists($subController, $action)) {
         ob_start();
         $subController->{$action}();
         $viewContent = ob_get_clean();
         return $viewContent;
     } else {
         throw AiryException("AiryMVC: Missing Action Function.");
     }
     return NULL;
 }
Esempio n. 3
0
 /**
  * This method forward to the action.
  *
  * @param object $Router the instance of the Router class.
  */
 public static function run()
 {
     $request = new Request();
     $request->set();
     $results = Route::resolveRoute($request);
     if (!is_null($results)) {
         Mvc::setCurrentMvc($results['mvc']);
         Mvc::setCurrentApp(Framework::app($results['mvc']->appName()));
         $request = $results['request'];
         TemplateMapper::templates();
         $tpl = TemplateMapper::getTemplate(Mvc::moduleName(), Mvc::controllerName(), Mvc::actionName());
         session_start();
         //Take out global, not use
         require_once Mvc::controllerFile();
         $controller = Mvc::controllerClassName();
         $action = Mvc::actionFunctionName();
         self::$runController = new $controller();
         self::$runController->setParams($request->params());
         self::$runController->setRequest($request);
         self::$runController->setDefaultModel();
         self::$runController->setDefaultView($tpl);
         //init method acts as a constructor after all the variables being set
         self::$runController->init();
         if (method_exists(self::$runController, $action)) {
             self::$runController->{$action}();
         } else {
             throw AiryException("AiryMVC: Missing Action Function.");
         }
         return self::$runController;
         session_write_close();
     }
 }