vendor/hofff/contao-consent-core/src/ContentElement/PrivacySettingsElement.php line 41

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Hofff\Contao\Consent\Core\ContentElement;
  4. use Contao\BackendTemplate;
  5. use Contao\Database\Result;
  6. use Contao\Model;
  7. use Hofff\Contao\Consent\Bridge\ConsentToolManager;
  8. use Hofff\Contao\Consent\Core\ConsentBridge\HofffConsentTool;
  9. use Hofff\Contao\Consent\Core\Tag\Root;
  10. use Netzmacht\Contao\Toolkit\Component\ContentElement\AbstractContentElement;
  11. use Netzmacht\Contao\Toolkit\Routing\RequestScopeMatcher;
  12. use Patchwork\Utf8;
  13. use Symfony\Component\Templating\EngineInterface as TemplateEngine;
  14. /** @internal */
  15. final class PrivacySettingsElement extends AbstractContentElement
  16. {
  17.     /** @var string */
  18.     protected $templateName 'ce_hofff_consent_privacy_settings';
  19.     /** @var RequestScopeMatcher */
  20.     private $scopeMatcher;
  21.     /** @var ConsentToolManager */
  22.     private $consentToolManager;
  23.     /** @var Root|null */
  24.     private $rootTag;
  25.     /** @param Model|Result $model */
  26.     public function __construct(
  27.         $model,
  28.         TemplateEngine $templateEngine,
  29.         RequestScopeMatcher $scopeMatcher,
  30.         ConsentToolManager $consentToolManager,
  31.         string $column 'main'
  32.     ) {
  33.         parent::__construct($model$templateEngine$column);
  34.         $this->scopeMatcher       $scopeMatcher;
  35.         $this->consentToolManager $consentToolManager;
  36.     }
  37.     public function generate(): string
  38.     {
  39.         if ($this->scopeMatcher->isBackendRequest()) {
  40.             $template = new BackendTemplate('be_wildcard');
  41.             $template->wildcard '### '
  42.                 Utf8::strtoupper($GLOBALS['TL_LANG']['CTE']['hofff_consent_privacy_settings'][0])
  43.                 . ' ###';
  44.             $template->title    $this->get('headline');
  45.             $template->id       $this->get('id');
  46.             return $template->parse();
  47.         }
  48.         $consentTool $this->consentToolManager->activeConsentTool();
  49.         if (! $consentTool instanceof HofffConsentTool) {
  50.             return '';
  51.         }
  52.         $this->rootTag $consentTool->rootTag();
  53.         return parent::generate();
  54.     }
  55.     /** {@inheritDoc} */
  56.     protected function prepareTemplateData(array $data): array
  57.     {
  58.         $data        parent::prepareTemplateData($data);
  59.         $data['tag'] = $this->rootTag;
  60.         return $data;
  61.     }
  62. }