custom/plugins/BlurElysiumSlider/src/DataResolver/ElysiumSliderCmsElementResolver.php line 41

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Blur\BlurElysiumSlider\DataResolver;
  3. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  4. use Shopware\Core\Content\Cms\DataResolver\Element\AbstractCmsElementResolver;
  5. use Shopware\Core\Content\Cms\DataResolver\Element\ElementDataCollection;
  6. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  7. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  8. use Shopware\Core\Framework\Context;
  9. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  10. use Blur\BlurElysiumSlider\Struct\ElysiumSliderStruct;
  11. class ElysiumSliderCmsElementResolver extends AbstractCmsElementResolver
  12. {
  13.     public $blurElysiumSlides;
  14.     public function __construct(
  15.         $blurElysiumSlides
  16.     )
  17.     {
  18.         $this->blurElysiumSlides = $blurElysiumSlides;
  19.     }
  20.     public function getType(): string
  21.     {
  22.         return 'blur-elysium-slider';
  23.     }
  24.     public function collect( 
  25.         CmsSlotEntity $slot, 
  26.         ResolverContext $resolverContext
  27.     ): ?CriteriaCollection
  28.     {
  29.         return null;
  30.     }
  31.     public function enrich(
  32.         CmsSlotEntity $slot, 
  33.         ResolverContext $resolverContext, 
  34.         ElementDataCollection $result
  35.         
  36.     ): void
  37.     {
  38.         $elysiumSliderStruct = new ElysiumSliderStruct();
  39.         if ( !empty( $slot->getFieldConfig()->get( 'elysiumSlideCollection' )->getValue() ) ) {
  40.             #dd($slot->getFieldConfig()->get( 'elysiumSlideCollection' )->getValue());
  41.             $criteria = new Criteria( $slot->getFieldConfig()->get( 'elysiumSlideCollection' )->getValue() );
  42.             $criteria->addAssociation( 'media' );
  43.             
  44.             $slideCollection = $this->blurElysiumSlides->search(
  45.                 $criteria,
  46.                 $resolverContext->getSalesChannelContext()->getContext()
  47.             );
  48.     
  49.             $elysiumSliderStruct->setSlideCollection( $slideCollection->getElements() );
  50.     
  51.             $slot->setData( $elysiumSliderStruct );
  52.         }
  53.     }
  54. }