vendor/hofff/contao-consent-core/src/ContentElement/PrivacySettingsElementFactory.php line 49

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Hofff\Contao\Consent\Core\ContentElement;
  4. use Contao\ContentModel;
  5. use Contao\Database\Result;
  6. use Contao\Model;
  7. use Hofff\Contao\Consent\Bridge\ConsentToolManager;
  8. use Netzmacht\Contao\Toolkit\Component\Component;
  9. use Netzmacht\Contao\Toolkit\Component\ComponentFactory;
  10. use Netzmacht\Contao\Toolkit\Routing\RequestScopeMatcher;
  11. use Symfony\Component\Templating\EngineInterface;
  12. /** @internal */
  13. final class PrivacySettingsElementFactory implements ComponentFactory
  14. {
  15.     /** @var EngineInterface */
  16.     private $templateEngine;
  17.     /** @var RequestScopeMatcher */
  18.     private $scopeMatcher;
  19.     /** @var ConsentToolManager */
  20.     private $consentToolManager;
  21.     public function __construct(
  22.         EngineInterface $templateEngine,
  23.         RequestScopeMatcher $scopeMatcher,
  24.         ConsentToolManager $consentToolManager
  25.     ) {
  26.         $this->templateEngine     $templateEngine;
  27.         $this->scopeMatcher       $scopeMatcher;
  28.         $this->consentToolManager $consentToolManager;
  29.     }
  30.     /** @param Model|Result $model */
  31.     public function supports($model): bool
  32.     {
  33.         if (! $model instanceof Result && ! $model instanceof ContentModel) {
  34.             return false;
  35.         }
  36.         return $model->type === 'hofff_consent_privacy_settings';
  37.     }
  38.     /** @param Model|Result $model */
  39.     public function create($modelstring $column): Component
  40.     {
  41.         return new PrivacySettingsElement(
  42.             $model,
  43.             $this->templateEngine,
  44.             $this->scopeMatcher,
  45.             $this->consentToolManager,
  46.             $column
  47.         );
  48.     }
  49. }