vendor/netzmacht/contao-toolkit/src/Controller/ContentElement/AbstractContentElementController.php line 57

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Netzmacht\Contao\Toolkit\Controller\ContentElement;
  4. use Contao\ContentModel;
  5. use Contao\CoreBundle\Security\Authentication\Token\TokenChecker;
  6. use Contao\Model;
  7. use Netzmacht\Contao\Toolkit\Controller\AbstractFragmentController;
  8. use Netzmacht\Contao\Toolkit\Response\ResponseTagger;
  9. use Netzmacht\Contao\Toolkit\Routing\RequestScopeMatcher;
  10. use Netzmacht\Contao\Toolkit\View\Template\TemplateRenderer;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. /**
  14.  * Class AbstractContentElementController is the base fragment controller for content elements
  15.  *
  16.  * @extends AbstractFragmentController<ContentModel>
  17.  */
  18. abstract class AbstractContentElementController extends AbstractFragmentController
  19. {
  20.     use IsHiddenTrait;
  21.     /**
  22.      * @param TemplateRenderer    $templateRenderer The template renderer.
  23.      * @param RequestScopeMatcher $scopeMatcher     The scope matcher.
  24.      * @param ResponseTagger      $responseTagger   The response tagger.
  25.      * @param TokenChecker        $tokenChecker     The token checker.
  26.      */
  27.     public function __construct(
  28.         TemplateRenderer $templateRenderer,
  29.         RequestScopeMatcher $scopeMatcher,
  30.         ResponseTagger $responseTagger,
  31.         TokenChecker $tokenChecker
  32.     ) {
  33.         parent::__construct($templateRenderer$scopeMatcher$responseTagger);
  34.         $this->tokenChecker $tokenChecker;
  35.     }
  36.     /**
  37.      * Handle the fragment action for the content element.
  38.      *
  39.      * @param Request           $request The current request.
  40.      * @param ContentModel      $model   The content model.
  41.      * @param string            $section The section in which the content element is rendered.
  42.      * @param list<string>|null $classes Additional css classes.
  43.      */
  44.     public function __invoke(Request $requestContentModel $modelstring $section, ?array $classes null): Response
  45.     {
  46.         if ($this->isHidden($model$request)) {
  47.             return new Response();
  48.         }
  49.         return $this->generate($request$model$section$classes);
  50.     }
  51.     protected function getFallbackTemplateName(Model $model): string
  52.     {
  53.         return 'ce_' $this->getType();
  54.     }
  55. }