custom/static-plugins/NdTheme/src/Subscriber/AddInstagramData.php line 25

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Nd\Theme\Subscriber;
  3. use Nd\Theme\Service\InstagramCommunicator;
  4. use Shopware\Core\Framework\Struct\ArrayStruct;
  5. use Shopware\Storefront\Pagelet\Footer\FooterPageletLoadedEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class AddInstagramData implements EventSubscriberInterface
  8. {
  9.     private InstagramCommunicator $instagramCommunicator;
  10.     public function __construct(InstagramCommunicator $instagramCommunicator){
  11.         $this->instagramCommunicator $instagramCommunicator;
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             FooterPageletLoadedEvent::class => 'addInstagramData'
  17.         ];
  18.     }
  19.     public function addInstagramData(FooterPageletLoadedEvent $event): void
  20.     {
  21.         $instaMedia $this->instagramCommunicator->getMediaByHashtag($event->getSalesChannelContext());
  22.         if(!$instaMedia){
  23.             return;
  24.         }
  25.         $data = new ArrayStruct();
  26.         $data->set("instagram"$instaMedia);
  27.         $event->getPagelet()->addExtension('instagram_posts'$data);
  28.     }
  29. }