예제 #1
0
 public function __invoke(Request $request, \Page $page)
 {
     $app = $this->app;
     $pageRevision = $page->getPageRevision();
     // @todo: these are currently unused :S
     $vars = array();
     $options = array();
     // Find language
     $language = $page->getInheritedProperty('Language');
     $fallbackLanguage = $app['fallbackLanguage'];
     if (!$language && $fallbackLanguage) {
         $app->logger->debug('Using fallback language');
         $language = $fallbackLanguage;
     }
     // Set language
     if ($language) {
         $locale = \Curry_Language::setLanguage($language);
         $language = \Curry_Language::getLanguage();
         if ($language) {
             $app->logger->debug('Current language is now ' . $language->getName() . ' (with locale ' . $locale . ')');
         }
     } else {
         $app->logger->debug('Language not set for page');
     }
     // Attempt to render page
     $app->logger->debug('Showing page ' . $page->getName() . ' (PageRevisionId: ' . $pageRevision->getPageRevisionId() . ')');
     $generator = AbstractGenerator::create($app, $pageRevision);
     return $generator->render($vars, $options);
 }
예제 #2
0
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     $exception = $event->getException();
     if ($exception instanceof NotFoundHttpException) {
         // we don't need to explicitly set 404 status, HttpKernel will do this for us.
         if ($this->app['errorPage.notFound'] && ($page = \PageQuery::create()->findPk($this->app['errorPage.notFound']))) {
             $generator = AbstractGenerator::create($this->app, $page->getActivePageRevision());
             $event->setResponse($generator->render());
         } else {
             $event->setResponse(new Response('Page not found'));
         }
     }
 }
예제 #3
0
 public function __invoke($message, $page = null)
 {
     if ($page !== null && ($page = \PageQuery::create()->findPk($page))) {
         // @todo set global maintenance message variable
         //$vars['curry']['MaintenanceMessage'] = $message;
         $generator = AbstractGenerator::create($this->app, $page->getActivePageRevision());
         $response = $generator->render();
     } else {
         $response = Response::create($message);
     }
     $response->setStatusCode(503);
     $response->headers->set('Retry-After', '3600');
     return $response;
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 public function __construct(App $app, \PageRevision $pageRevision)
 {
     parent::__construct($app, $pageRevision);
     $this->htmlHead = new HtmlHead();
 }