<?php
namespace Huebert\SeoUltimate\Subscriber;
use Shopware\Storefront\Page\GenericPageLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Shopware\Core\System\SystemConfig\SystemConfigService;
class GenericPageSubscriber implements EventSubscriberInterface
{
/*
* @var SystemConfigService
*/
private $systemConfig;
// add the `SystemConfigService` to your constructor
public function __construct(SystemConfigService $systemConfig)
{
$this->systemConfig = $systemConfig;
}
public static function getSubscribedEvents(): array
{
return [
GenericPageLoadedEvent::class => 'onPageLoaded'
];
}
public function onPageLoaded(GenericPageLoadedEvent $pageLoadedEvent) {
//assign HuebertSeoUltimate config keys
$config = $this->systemConfig->get('HuebertSeoUltimate.config', $pageLoadedEvent->getSalesChannelContext()->getSalesChannel()->getId());
if($config) {$pageLoadedEvent->getPage()->assign(['HuebertSeoUltimate' => ['config' => $config]]);}
//assign newsletterPage ID
$newsletterConfig = $this->systemConfig->get('core.basicInformation.newsletterPage', $pageLoadedEvent->getSalesChannelContext()->getSalesChannel()->getId());
if($newsletterConfig) {$pageLoadedEvent->getPage()->assign(['newsletterPage' => $newsletterConfig]);}
}
}