app/Plugin/BannerB001Block42/BannerB001Block42Event.php line 40

Open in your IDE?
  1. <?php
  2. namespace Plugin\BannerB001Block42;
  3. use Eccube\Event\TemplateEvent;
  4. use Plugin\BannerB001Block42\Entity\BannerBlock;
  5. use Plugin\BannerB001Block42\Repository\BannerBlockRepository;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class BannerB001Block42Event implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var BannerBlockRepository
  11.      */
  12.     private BannerBlockRepository $bannerBlockRepository;
  13.     /**
  14.      * @param BannerBlockRepository $bannerBlockRepository
  15.      */
  16.     public function __construct(BannerBlockRepository $bannerBlockRepository)
  17.     {
  18.         $this->bannerBlockRepository $bannerBlockRepository;
  19.     }
  20.     /**
  21.      * @return array
  22.      */
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             'default_frame.twig' => 'includeAssets',
  27.         ];
  28.     }
  29.     /**
  30.      * @noinspection PhpUnused
  31.      *
  32.      * @param TemplateEvent $event
  33.      */
  34.     public function includeAssets(TemplateEvent $event)
  35.     {
  36.         /** @var BannerBlock $BannerBlock */
  37.         $BannerBlock $this->bannerBlockRepository->findOneBy(['type' => 'banner01']);
  38.         if ($BannerBlock) {
  39.             $parameters                $event->getParameters();
  40.             $parameters['BannerBlock'] = $BannerBlock;
  41.             $event->setParameters($parameters);
  42.             $event->addAsset('@BannerB001Block42/styles.twig');
  43.         }
  44.     }
  45. }