/** * @param ContainerInterface $container * @returns AuraViewRenderer */ public function __invoke(ContainerInterface $container) { $config = $container->has('config') ? $container->get('config') : []; $config = isset($config['templates']) ? $config['templates'] : []; if ($container->has('Aura\\View\\View')) { $renderer = $container->get('Aura\\View\\View'); } else { $factory = new HelperLocatorFactory(); $helpers = $factory->newInstance(); $view_factory = new ViewFactory(); $renderer = $view_factory->newInstance($helpers); } // Inject helpers $this->injectHelpers($renderer, $container); // Inject renderer $view = new AuraViewRenderer($renderer, isset($config['layout']) ? $config['layout'] : null); $map = isset($config['map']) ? $config['map'] : []; $viewRegistry = $renderer->getViewRegistry(); $layoutRegistry = $renderer->getLayoutRegistry(); foreach ($map as $template => $filename) { $viewRegistry->set($template, $filename); $layoutRegistry->set($template, $filename); } // Add template paths $allPaths = isset($config['paths']) && is_array($config['paths']) ? $config['paths'] : []; foreach ($allPaths as $namespace => $paths) { $namespace = is_numeric($namespace) ? null : $namespace; foreach ((array) $paths as $path) { $view->addPath($path, $namespace); } } return $view; }
protected function newView(RootConfig $config) { $helpersFactory = new HelperLocatorFactory(); $helpers = $helpersFactory->newInstance(); $viewFactory = new ViewFactory(); $view = $viewFactory->newInstance($helpers); $this->setTemplate($view, $config); return $view; }
/** * Returns the Responder * @return string */ protected function htmlBody($data) { // Aura.view setup $view_factory = new ViewFactory(); $view = $view_factory->newInstance(); // layout $layout_registry = $view->getLayoutRegistry(); $layout_registry->set('layout', $this->layout); // views $view_registry = $view->getViewRegistry(); // get slug for partial view $slug = $this->request->getAttribute('page'); $partial_view = $this->staticpages . $slug . '.php'; // check if the partial file really exists, // if not throw an 404 error instead or aura view template not found if (!file_exists($partial_view)) { // $this->response = $this->response->withStatus(404); // $this->response = $this->response->withHeader('Content-Type', 'text/html'); // $this->response->getBody()->write('404'); $this->error($payload); } // set the registy $view_registry->set('_content', $partial_view); /* * assign data to the view */ // set data $dataset = ['data' => $data, 'partial' => 'partial', 'debug' => $this->payload->getStatus()]; // assign data to view $view->setData($dataset); /* * check for ajax request and set views accordingly */ if ($this->is_pjax()) { // pjax request, set the view only $view->setView('_content'); } else { // regular http request, set view and layout $view->setLayout('layout'); $view->setView('_content'); } $output = $view->__invoke(); // retun response // $this->response = $this->response->withStatus(202); $this->response = $this->response->withHeader('Content-Type', 'text/html'); $this->response->getBody()->write($output); }
/** * Returns the Responder * @return string */ protected function htmlBody($data) { // // $slug = 'error'; if (isset($data)) { // $slug = $this->request->getAttribute('page'); $slugFromPayload = $this->payload->getOutput(); // $slug = $slugFromPayload['slug']; if (isset($slugFromPayload['slug'])) { $slug = $slugFromPayload['slug']; } else { $slug = 'index'; } // $this->request = $this->request->withAttribute('page', 'error.php'); //setup views // $this->loadTemplate(); // $template = $this->twig->loadTemplate($view); // $body = $template->render($data); // $this->response = $this->response->withHeader('Content-Type', 'text/html'); // $this->response->getBody()->write($body); } // set thir probaly fro config file // Aura.view setup $view_factory = new ViewFactory(); // a $view = $view_factory->newInstance(); // // layout $layout_registry = $view->getLayoutRegistry(); $layout_registry->set('layout', $this->layout); // views $view_registry = $view->getViewRegistry(); $slug = $this->request->getAttribute('page'); $partial_view = $this->staticpages . $slug . '.php'; // check if the partial file exists, if not set status 404 if (!file_exists($partial_view)) { $this->response = $this->response->withStatus(404); $partial_view = $this->staticpages . 'error' . '.php'; } // set the registy $view_registry->set('_content', $partial_view); // demo data $dataset = ['data' => $data, 'partial' => 'partial', 'debug' => $this->payload->getStatus()]; // assign data to the view $view->setData($dataset); /* * check for ajax request and set views accordingly */ if ($this->is_pjax()) { // pjax request, set the view only // $this->renderView(); $view->setView('_content'); } else { // regular http request, set view and layout $view->setLayout('layout'); $view->setView('_content'); } $output = $view->__invoke(); // retun response $this->response = $this->response->withHeader('Content-Type', 'text/html'); $this->response->getBody()->write($output); }
protected function htmlBody(array $data) { // Aura.view setup $view_factory = new ViewFactory(); $view = $view_factory->newInstance(); // add templates to the view registry $view_registry = $view->getViewRegistry(); // main view $layout_registry = $view->getLayoutRegistry(); $layout_registry->set('layout', $this->viewDir . '/layout.php'); // partial view $view_registry = $view->getViewRegistry(); $partial = $this->request->getAttribute('_content'); $view_registry->set('_content', $this->viewDir . '/_' . $partial); // set partial view main content file as dynamic partial $dataset = ['data' => $data, 'partial' => $partial]; $view->setData($dataset); // do it // set views $view->setView('_content'); $view->setLayout('layout'); $output = $view->__invoke(); // or just $view() // $this->response = $this->response->withHeader('Content-Type', 'text/html'); $this->response->getBody()->write($output); }