custom/plugins/SvenDasMenu/src/Subscriber/FrontendSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Sven\DasMenu\Subscriber;
  4. use Shopware\Storefront\Event\StorefrontRenderEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Shopware\Core\System\SystemConfig\SystemConfigService;
  7. class FrontendSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var SystemConfigService
  11.      */
  12.     private $systemConfigService;
  13.     public function __construct(SystemConfigService $systemConfigService)
  14.     {
  15.         $this->systemConfigService $systemConfigService;
  16.     }
  17.     /**
  18.      * @return array<string, string>
  19.      */
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         // Return the events to listen to as array like this:  <event to listen to> => <method to execute>
  23.         return [
  24.             StorefrontRenderEvent::class => 'onStorefrontRender'
  25.         ];
  26.     }
  27.     public function onStorefrontRender(StorefrontRenderEvent $event): void
  28.     {
  29.         /** @var array<string> $pluginConfig */
  30.         $pluginConfig $this->systemConfigService->get('SvenDasMenu.config'$event->getSalesChannelContext()->getSalesChannel()->getId());
  31.         if ($pluginConfig['show']) {
  32.             $event->setParameter('dasMenu'$pluginConfig['show']);
  33.         }
  34.         if ($pluginConfig['subwidth']) {
  35.             $event->setParameter('dasMenuSubWidth'$pluginConfig['subwidth']);
  36.         }
  37.         if ($pluginConfig['enableDesktop']) {
  38.             $event->setParameter('dasMenuEnableDesktop'$pluginConfig['enableDesktop']);
  39.         }
  40.         if ($pluginConfig['enableMobile']) {
  41.             $event->setParameter('dasMenuEnableMobile'$pluginConfig['enableMobile']);
  42.         }
  43.         if ($pluginConfig['expandMenu']) {
  44.             $event->setParameter('dasMenuExpandMenu'$pluginConfig['expandMenu']);
  45.         }
  46.          if ($pluginConfig['addIcons']) {
  47.             $event->setParameter('dasMenuaddIcons'$pluginConfig['addIcons']);
  48.         }
  49.         if ($pluginConfig['enableTopcat']) {
  50.             $event->setParameter('dasMenuenableTopcat'$pluginConfig['enableTopcat']);
  51.         }
  52.         if ($pluginConfig['startLevel']) {
  53.             $event->setParameter('dasMenustartLevel'$pluginConfig['startLevel']);
  54.         }
  55.           if ($pluginConfig['closeAll']) {
  56.             $event->setParameter('dasMenucloseAll'$pluginConfig['closeAll']);
  57.         }
  58.     }
  59. }