/** * Adds the Contao headers to the Symfony response. * * @param FilterResponseEvent $event The event object */ public function onKernelResponse(FilterResponseEvent $event) { if (!$this->contaoFramework->isInitialized()) { return; } $event->setResponse($this->mergeHttpHeaders($event->getResponse())); }
/** * Forwards the request to the Frontend class if there is a page object. * * @param PostResponseEvent $event */ public function onKernelTerminate(PostResponseEvent $event) { if (!$this->framework->isInitialized()) { return; } /** @var Frontend $frontend */ $frontend = $this->framework->getAdapter('Contao\\Frontend'); $frontend->indexPageIfApplicable($event->getResponse()); }
/** * Runs the command scheduler. */ public function onKernelTerminate() { if (!$this->framework->isInitialized() || !$this->canRunController()) { return; } /** @var FrontendCron $controller */ $controller = $this->framework->createInstance('Contao\\FrontendCron'); $controller->run(); }
/** * Forwards the request to the Frontend class if there is a page object. * * @param PostResponseEvent $event */ public function onKernelTerminate(PostResponseEvent $event) { if (!$this->framework->isInitialized()) { return; } // Do not index fragments if (preg_match('~(?:^|/)' . preg_quote($this->fragmentPath, '~') . '/~', $event->getRequest()->getPathInfo())) { return; } /** @var Frontend $frontend */ $frontend = $this->framework->getAdapter(Frontend::class); $frontend->indexPageIfApplicable($event->getResponse()); }
/** * Modifies the front end preview URL. * * @param PreviewUrlConvertEvent $event The event object */ public function onPreviewUrlConvert(PreviewUrlConvertEvent $event) { if (!$this->framework->isInitialized()) { return; } $request = $this->requestStack->getCurrentRequest(); if (null === $request || null === ($eventModel = $this->getEventModel($request))) { return; } /** @var Events $eventsAdapter */ $eventsAdapter = $this->framework->getAdapter('Contao\\Events'); $event->setUrl($request->getSchemeAndHttpHost() . '/' . $eventsAdapter->generateEventUrl($eventModel)); }
/** * Runs the command scheduler. */ public function onKernelTerminate() { if (!$this->framework->isInitialized()) { return; } /** @var Config $config */ $config = $this->framework->getAdapter('Contao\\Config'); if ($config->get('disableCron')) { return; } /** @var FrontendCron $controller */ $controller = $this->framework->createInstance('Contao\\FrontendCron'); $controller->run(); }
/** * Adds a query to the front end preview URL. * * @param PreviewUrlCreateEvent $event */ public function onPreviewUrlCreate(PreviewUrlCreateEvent $event) { if (!$this->framework->isInitialized() || 'calendar' !== $event->getKey()) { return; } $request = $this->requestStack->getCurrentRequest(); // Return on the calendar list page if ('tl_calendar_events' === $request->query->get('table') && !$request->query->has('act')) { return; } if (null === ($eventModel = $this->getEventModel($this->getId($event, $request)))) { return; } $event->setQuery('calendar=' . $eventModel->id); }