custom/plugins/zenitPlatformHorizon/src/Core/Content/Product/Cms/ProductBoxCmsElementResolverDecorator.php line 42

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace zenit\PlatformHorizon\Core\Content\Product\Cms;
  3. use Shopware\Core\Content\Cms\DataResolver\Element\AbstractCmsElementResolver;
  4. use Shopware\Core\Content\Cms\DataResolver\Element\CmsElementResolverInterface;
  5. use Shopware\Core\Content\Cms\DataResolver\Element\ElementDataCollection;
  6. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  7. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  8. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  9. class ProductBoxCmsElementResolverDecorator extends AbstractCmsElementResolver
  10. {
  11.     /** @var CmsElementResolverInterface $elementResolver */
  12.     private $elementResolver;
  13.     public function getType(): string
  14.     {
  15.         return $this->elementResolver->getType();
  16.     }
  17.     public function __construct(CmsElementResolverInterface $elementResolver)
  18.     {
  19.         $this->elementResolver $elementResolver;
  20.     }
  21.     public function collect(CmsSlotEntity $slotResolverContext $resolverContext): ?CriteriaCollection
  22.     {
  23.         $criteriaCollection $this->elementResolver->collect($slot$resolverContext);
  24.         foreach ($criteriaCollection as $productCriteria) {
  25.             foreach ($productCriteria as $criteria) {
  26.                 $criteria->addAssociation('media');
  27.             }
  28.         }
  29.         return $criteriaCollection;
  30.     }
  31.     public function enrich(CmsSlotEntity $slotResolverContext $resolverContextElementDataCollection $result): void
  32.     {
  33.         $this->elementResolver->enrich($slot$resolverContext$result);
  34.     }
  35. }