vendor/generationshop/consent-mode/src/DataResolver/GshopCookieElementResolver.php line 41

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Gshop\ConsentMode\DataResolver;
  3. use Gshop\ConsentMode\Framework\GshopCookie\SalesChannel\AbstractCookieGroupRoute;
  4. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  5. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  6. use Shopware\Core\Content\Cms\DataResolver\Element\AbstractCmsElementResolver;
  7. use Shopware\Core\Content\Cms\DataResolver\Element\ElementDataCollection;
  8. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  9. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  10. use Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. class GshopCookieElementResolver extends AbstractCmsElementResolver
  14. {
  15.     private AbstractCookieGroupRoute $cookieGroupRoute;
  16.     private RequestStack $requestStack;
  17.     public function __construct(
  18.         AbstractCookieGroupRoute $cookieGroupRoute,
  19.         RequestStack $requestStack
  20.     )
  21.     {
  22.         $this->cookieGroupRoute $cookieGroupRoute;
  23.         $this->requestStack $requestStack;
  24.     }
  25.     public function getType(): string
  26.     {
  27.         return 'gshop-cookie-element';
  28.     }
  29.     public function collect(CmsSlotEntity $slotResolverContext $resolverContext): ?CriteriaCollection
  30.     {
  31.         return null;
  32.     }
  33.     public function enrich(CmsSlotEntity $slotResolverContext $resolverContextElementDataCollection $result): void
  34.     {
  35.         $criteria = new Criteria();
  36.         $criteria->addAssociation('cookies.entries');
  37.         $criteria->getAssociation('cookies')->addSorting(new FieldSorting('position''ASC'));
  38.         $criteria->getAssociation('entries')->addSorting(new FieldSorting('position''ASC'));
  39.         $criteria->addSorting(new FieldSorting('position''ASC'));
  40.         $request $this->requestStack->getCurrentRequest();
  41.         if ($request === null) {
  42.             $request = new Request();
  43.         }
  44.         $cookieGroups $this->cookieGroupRoute->load(
  45.             $request,
  46.             $resolverContext->getSalesChannelContext(),
  47.             $criteria
  48.         )->getCookieGroups();
  49.         
  50.         $slot->setData($cookieGroups);
  51.     }
  52. }