vendor/store.shopware.com/zeobvgetnotified/src/DataResolver/ListingCmsElementResolver.php line 31

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Zeobv\GetNotified\DataResolver;
  3. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  4. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  5. use Shopware\Core\Content\Cms\DataResolver\Element\AbstractCmsElementResolver;
  6. use Shopware\Core\Content\Cms\DataResolver\Element\CmsElementResolverInterface;
  7. use Shopware\Core\Content\Cms\DataResolver\Element\ElementDataCollection;
  8. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  9. use Shopware\Core\Content\Cms\SalesChannel\Struct\ProductListingStruct;
  10. use Shopware\Core\Framework\Struct\ArrayStruct;
  11. use Zeobv\GetNotified\Service\ConfigService;
  12. class ListingCmsElementResolver extends AbstractCmsElementResolver
  13. {
  14.     protected CmsElementResolverInterface $decorator;
  15.     protected ConfigService $configService;
  16.     public function __construct(
  17.         CmsElementResolverInterface $decorator,
  18.         ConfigService               $configService
  19.     )
  20.     {
  21.         $this->decorator $decorator;
  22.         $this->configService $configService;
  23.     }
  24.     public function enrich(CmsSlotEntity $slotResolverContext $resolverContextElementDataCollection $result): void
  25.     {
  26.         $this->decorator->enrich(...func_get_args());
  27.         $data $slot->getData();
  28.         if (!$data instanceof ProductListingStruct) {
  29.             return;
  30.         }
  31.         $hideForm $this->configService->getHideStockSubscriptionFormOnListingPage($resolverContext->getSalesChannelContext()->getSalesChannel());
  32.         $resolverContext->getSalesChannelContext()->addExtension('zeobvGetNotifiedEnabled', new ArrayStruct(['enabled' => !$hideForm]));
  33.     }
  34.     public function getType(): string
  35.     {
  36.         return $this->decorator->getType();
  37.     }
  38.     public function collect(CmsSlotEntity $slotResolverContext $resolverContext): ?CriteriaCollection
  39.     {
  40.         return $this->decorator->collect(...func_get_args());
  41.     }
  42. }