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(); }
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); }