vendor/contao/core-bundle/src/Controller/ContentElement/AbstractContentElementController.php line 37

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * This file is part of Contao.
  5.  *
  6.  * (c) Leo Feyer
  7.  *
  8.  * @license LGPL-3.0-or-later
  9.  */
  10. namespace Contao\CoreBundle\Controller\ContentElement;
  11. use Contao\ContentModel;
  12. use Contao\CoreBundle\Controller\AbstractFragmentController;
  13. use Contao\Template;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. abstract class AbstractContentElementController extends AbstractFragmentController
  17. {
  18.     public function __invoke(Request $requestContentModel $modelstring $section, array $classes null): Response
  19.     {
  20.         $type $this->getType();
  21.         $template $this->createTemplate($model'ce_'.$type);
  22.         $this->addHeadlineToTemplate($template$model->headline);
  23.         $this->addCssAttributesToTemplate($template'ce_'.$type$model->cssID$classes);
  24.         $this->addPropertiesToTemplate($template$request->attributes->get('templateProperties', []));
  25.         $this->addSectionToTemplate($template$section);
  26.         $this->tagResponse($model);
  27.         $response $this->getResponse($template$model$request);
  28.         if (null === $response) {
  29.             trigger_deprecation('contao/core-bundle''4.12''Returning null in %s::getResponse() is deprecated, return a Response instead.', static::class);
  30.             $response $template->getResponse();
  31.         }
  32.         return $response;
  33.     }
  34.     protected function addSharedMaxAgeToResponse(Response $responseContentModel $model): void
  35.     {
  36.         $time time();
  37.         $min = [];
  38.         if ('' !== $model->start && $model->start $time) {
  39.             $min[] = (int) $model->start $time;
  40.         }
  41.         if ('' !== $model->stop && $model->stop $time) {
  42.             $min[] = (int) $model->stop $time;
  43.         }
  44.         if (empty($min)) {
  45.             return;
  46.         }
  47.         $response->setSharedMaxAge(min($min));
  48.     }
  49.     abstract protected function getResponse(Template $templateContentModel $modelRequest $request): ?Response;
  50. }