custom/plugins/NetzpNotifications6/src/Subscriber/FrontendSubscriber.php line 25

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace NetzpNotifications6\Subscriber;
  3. use NetzpNotifications6\Helper\NotificationsHelper;
  4. use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class FrontendSubscriber implements EventSubscriberInterface
  7. {
  8.     private $helper;
  9.     public function __construct(NotificationsHelper $helper)
  10.     {
  11.         $this->helper $helper;
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             HeaderPageletLoadedEvent::class => 'loadNotifications'
  17.         ];
  18.     }
  19.     public function loadNotifications(HeaderPageletLoadedEvent $event): void
  20.     {
  21.         $baseUrl $event->getRequest()->getBaseUrl();
  22.         $url $event->getRequest()->get('sw-original-request-uri');
  23.         if($url == null) {
  24.             $url $event->getRequest()->getPathInfo();
  25.         }
  26.         if($url != null) {
  27.             $url htmlspecialchars($urlENT_QUOTES'UTF-8'); // prevent XSS
  28.         }
  29.         $data['cookiename'] = $this->helper->getCookieName();
  30.         $data['channelid'] = $event->getSalesChannelContext()->getSalesChannel()->getId();
  31.         $data['channelurl'] = $event->getRequest()->get('sw-sales-channel-base-url');
  32.         $data['url'] = $url;
  33.         $data['route'] = $event->getRequest()->attributes->get('_route');
  34.         $data['baseurl'] = $baseUrl;
  35.         $data['privacylink'] = '';
  36.         $event->getPagelet()->assign(['netzp_notification' => $data]);
  37.     }
  38. }