/**
  * @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);
 }
Ejemplo n.º 4
0
 /**
  * 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);
 }
Ejemplo n.º 5
0
 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);
 }