<?php
declare(strict_types=1);
namespace Sven\DasMenu\Subscriber;
use Shopware\Storefront\Event\StorefrontRenderEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Shopware\Core\System\SystemConfig\SystemConfigService;
class FrontendSubscriber implements EventSubscriberInterface
{
/**
* @var SystemConfigService
*/
private $systemConfigService;
public function __construct(SystemConfigService $systemConfigService)
{
$this->systemConfigService = $systemConfigService;
}
/**
* @return array<string, string>
*/
public static function getSubscribedEvents(): array
{
// Return the events to listen to as array like this: <event to listen to> => <method to execute>
return [
StorefrontRenderEvent::class => 'onStorefrontRender'
];
}
public function onStorefrontRender(StorefrontRenderEvent $event): void
{
/** @var array<string> $pluginConfig */
$pluginConfig = $this->systemConfigService->get('SvenDasMenu.config', $event->getSalesChannelContext()->getSalesChannel()->getId());
if ($pluginConfig['show']) {
$event->setParameter('dasMenu', $pluginConfig['show']);
}
if ($pluginConfig['subwidth']) {
$event->setParameter('dasMenuSubWidth', $pluginConfig['subwidth']);
}
if ($pluginConfig['enableDesktop']) {
$event->setParameter('dasMenuEnableDesktop', $pluginConfig['enableDesktop']);
}
if ($pluginConfig['enableMobile']) {
$event->setParameter('dasMenuEnableMobile', $pluginConfig['enableMobile']);
}
if ($pluginConfig['expandMenu']) {
$event->setParameter('dasMenuExpandMenu', $pluginConfig['expandMenu']);
}
if ($pluginConfig['addIcons']) {
$event->setParameter('dasMenuaddIcons', $pluginConfig['addIcons']);
}
if ($pluginConfig['enableTopcat']) {
$event->setParameter('dasMenuenableTopcat', $pluginConfig['enableTopcat']);
}
if ($pluginConfig['startLevel']) {
$event->setParameter('dasMenustartLevel', $pluginConfig['startLevel']);
}
if ($pluginConfig['closeAll']) {
$event->setParameter('dasMenucloseAll', $pluginConfig['closeAll']);
}
}
}