private function dispatch($di)
 {
     $router = $di['router'];
     $router->handle();
     $view = $di['view'];
     $dispatcher = $di['dispatcher'];
     $response = $di['response'];
     $dispatcher->setModuleName($router->getModuleName());
     $dispatcher->setControllerName($router->getControllerName());
     $dispatcher->setActionName($router->getActionName());
     $dispatcher->setParams($router->getParams());
     $moduleName = \Application\Utils\ModuleName::camelize($router->getModuleName());
     $ModuleClassName = $moduleName . '\\Module';
     if (class_exists($ModuleClassName)) {
         $module = new $ModuleClassName();
         $module->registerAutoloaders();
         $module->registerServices($di);
     }
     $view->start();
     $registry = $di['registry'];
     if ($registry->cms['DEBUG_MODE']) {
         $debug = new \Phalcon\Debug();
         $debug->listen();
         $dispatcher->dispatch();
     } else {
         try {
             $dispatcher->dispatch();
         } catch (\Phalcon\Exception $e) {
             // Errors catching
             $view->setViewsDir(__DIR__ . '/modules/Index/views/');
             $view->setPartialsDir('');
             $view->e = $e;
             if ($e instanceof \Phalcon\Mvc\Dispatcher\Exception) {
                 $response->setHeader(404, 'Not Found');
                 $view->partial('error/error404');
             } else {
                 $response->setHeader(503, 'Service Unavailable');
                 $view->partial('error/error503');
             }
             $response->sendHeaders();
             echo $response->getContent();
             return;
         }
     }
     $view->render($dispatcher->getControllerName(), $dispatcher->getActionName(), $dispatcher->getParams());
     $view->finish();
     $response = $di['response'];
     // AJAX
     $request = $di['request'];
     $_ajax = $request->getQuery('_ajax');
     if ($_ajax) {
         $contents = $view->getContent();
         $return = new \stdClass();
         $return->html = $contents;
         $return->title = $di->get('helper')->title()->get();
         $return->success = true;
         if ($view->bodyClass) {
             $return->bodyClass = $view->bodyClass;
         }
         $headers = $response->getHeaders()->toArray();
         if (isset($headers[404]) || isset($headers[503])) {
             $return->success = false;
         }
         $response->setContentType('application/json', 'UTF-8');
         $response->setContent(json_encode($return));
     } else {
         $response->setContent($view->getContent());
     }
     $response->sendHeaders();
     echo $response->getContent();
 }
Exemple #2
0
 public function modulePartial($template, $data, $module = null)
 {
     $view = clone $this->getDi()->get('view');
     $partialsDir = '';
     if ($module) {
         $moduleName = \Application\Utils\ModuleName::camelize($module);
         $partialsDir = '../../../modules/' . $moduleName . '/views/';
     }
     $view->setPartialsDir($partialsDir);
     return $view->partial($template, $data);
 }