custom/plugins/BstRegisterType6/src/Storefront/Subscriber/Frontend.php line 81

Open in your IDE?
  1. <?php
  2. /**
  3.  * NOTICE OF LICENSE
  4.  *
  5.  * @copyright  Copyright (c) 11.01.2021 brainstation GbR
  6.  * @author     Mike Becker<mike@brainstation.de>
  7.  */
  8. declare(strict_types=1);
  9. namespace BstRegisterType6\Storefront\Subscriber;
  10. use Psr\Log\LoggerInterface;
  11. use Shopware\Core\Content\Media\MediaService;
  12. use Shopware\Storefront\Page\Address\Listing\AddressListingPageLoadedEvent;
  13. use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  16. use BstRegisterType6\Settings\Service\SettingsService;
  17. use BstRegisterType6\Settings\Struct\SettingsStruct;
  18. class Frontend implements EventSubscriberInterface
  19. {
  20.     /** @var SettingsService */
  21.     private $settingsService;
  22.     /** @var LoggerInterface */
  23.     private $logger;
  24.     /** @var SessionInterface */
  25.     private $session;
  26.     /** @var MediaService */
  27.     private $mediaService;
  28.     /** @var SettingsStruct */
  29.     private $settings;
  30.     /**
  31.      * Frontend constructor.
  32.      * @param SettingsService $settingsService
  33.      * @param MediaService $mediaService
  34.      * @param SessionInterface $session
  35.      * @param LoggerInterface $logger
  36.      */
  37.     public function __construct(
  38.         SettingsService $settingsService,
  39.         MediaService $mediaService,
  40.         SessionInterface $session,
  41.         LoggerInterface $logger
  42.     )
  43.     {
  44.         $this->settingsService $settingsService;
  45.         $this->mediaService $mediaService;
  46.         $this->session $session;
  47.         $this->logger $logger;
  48.     }
  49.     /**
  50.      * @return array
  51.      */
  52.     public static function getSubscribedEvents(): array
  53.     {
  54.         return [
  55.             HeaderPageletLoadedEvent::class => 'onPageLoaded',
  56.             AddressListingPageLoadedEvent::class => 'onAddressLoaded',
  57.         ];
  58.     }
  59.     /**
  60.      * @param HeaderPageletLoadedEvent $event
  61.      */
  62.     public function onPageLoaded(HeaderPageletLoadedEvent $event): void
  63.     {
  64.         $this->settings $this->settingsService->getSettings($event->getSalesChannelContext()->getSalesChannel()->getId());
  65.         $event->getPagelet()->addExtension('BstRegisterType6'$this->settings);
  66.     }
  67.     /**
  68.      * @param AddressListingPageLoadedEvent $event
  69.      */
  70.     public function onAddressLoaded(AddressListingPageLoadedEvent $event): void
  71.     {
  72.         $this->settings $this->settingsService->getSettings($event->getSalesChannelContext()->getSalesChannel()->getId());
  73.         $event->getPage()->addExtension('BstRegisterType6'$this->settings);
  74.     }
  75. }