custom/static-plugins/LDSCustom/src/Subscriber/Frontend.php line 38

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace LDSCustom\Subscriber;
  4. use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  7. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting;
  9. class Frontend implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var EntityRepositoryInterface
  13.      */
  14.     private $manufacturerRepository;
  15.     public function __construct(EntityRepositoryInterface $manufacturerRepository)
  16.     {
  17.         $this->manufacturerRepository $manufacturerRepository;
  18.     }
  19.     /**
  20.      * @return array
  21.      */
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             HeaderPageletLoadedEvent::class => 'onPageLoaded'
  26.         ];
  27.     }
  28.     /**
  29.      * @param HeaderPageletLoadedEvent $event
  30.      */
  31.     public function onPageLoaded(HeaderPageletLoadedEvent $event): void
  32.     {
  33.         $context $event->getSalesChannelContext()->getContext();
  34.         $event->getPagelet()->addArrayExtension('LdsManufacturers'$this->getManufacturers($context));
  35.     }
  36.     private function getManufacturers($context)
  37.     {
  38.         $criteria = new Criteria();
  39.         $criteria->setTitle(' manufacturer');
  40.         $criteria->addSorting(new FieldSorting('name'));
  41.         $criteria->addAssociation('media');
  42.         $manufacturers $this->manufacturerRepository->search($criteria$context)->getElements();
  43.         foreach ($manufacturers as $key => $manufacturer) {
  44.             if (!empty($manufacturer->getTranslated()['customFields']['cbaxManufacturerIsHidden'])) {
  45.                 unset($manufacturers[$key]);
  46.             }
  47.         }
  48.         return $manufacturers;
  49.     }
  50. }