vendor/mrpix/shopping-city/src/Subscriber/SearchSubscriber.php line 28

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Mrpix\ShoppingCity\Subscriber;
  3. use Mrpix\ShoppingCity\Services\Seller;
  4. use Shopware\Storefront\Page\PageLoadedEvent;
  5. use Shopware\Storefront\Page\Search\SearchPageLoadedEvent;
  6. use Shopware\Storefront\Page\Suggest\SuggestPageLoadedEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class SearchSubscriber implements EventSubscriberInterface
  9. {
  10.     private Seller $sellerService;
  11.     public function __construct(Seller $sellerService)
  12.     {
  13.         $this->sellerService $sellerService;
  14.     }
  15.     public static function getSubscribedEvents(): array
  16.     {
  17.         return [
  18.             SuggestPageLoadedEvent::class => 'onSuggestPageLoaded',
  19.             SearchPageLoadedEvent::class => 'onSearchPageLoaded',
  20.         ];
  21.     }
  22.     public function onSuggestPageLoaded(SuggestPageLoadedEvent $event): void
  23.     {
  24.         $this->addSellersExtension($event);
  25.     }
  26.     public function onSearchPageLoaded(SearchPageLoadedEvent $event): void
  27.     {
  28.         $this->addSellersExtension($eventfalse);
  29.     }
  30.     /**
  31.      * @param SuggestPageLoadedEvent|SearchPageLoadedEvent $event
  32.      */
  33.     private function addSellersExtension(PageLoadedEvent $eventbool $isSuggest true): void
  34.     {
  35.         $page $event->getPage();
  36.         $searchTerm $page->getSearchTerm();
  37.         $sellers $this->sellerService->searchSellers($searchTerm$event->getContext(), $isSuggest);
  38.         if (!empty($sellers)) {
  39.             $page->addArrayExtension('sellers'$sellers);
  40.         }
  41.     }
  42. }