<?php
namespace Plugin\HeaderBlock42;
use Eccube\Event\TemplateEvent;
use Plugin\HeaderBlock42\Entity\HeaderBlock;
use Plugin\HeaderBlock42\Repository\HeaderBlockRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class Event implements EventSubscriberInterface
{
/**
* @var HeaderBlockRepository
*/
private HeaderBlockRepository $headerBlockRepository;
/**
* @param HeaderBlockRepository $headerBlockRepository
*/
public function __construct(HeaderBlockRepository $headerBlockRepository)
{
$this->headerBlockRepository = $headerBlockRepository;
}
/**
* @return array
*/
public static function getSubscribedEvents(): array
{
return [
'default_frame.twig' => 'includeAssets',
];
}
/**
* @noinspection PhpUnused
*
* @param TemplateEvent $event
*/
public function includeAssets(TemplateEvent $event)
{
/** @var HeaderBlock $HeaderBlock */
$HeaderBlock = $this->headerBlockRepository->findOneBy(['type' => 'header01']);
if ($HeaderBlock) {
$parameters = $event->getParameters();
$parameters['HeaderBlock'] = $HeaderBlock;
$event->setParameters($parameters);
$event->addAsset('@HeaderBlock42/styles.twig');
}
}
}