<?php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
use App\Repository\SettingsRepository;
use Twig\Environment;
# see example here: https://symfony.com/doc/6.2/the-fast-track/en/12-event.html
class TwigEventSubscriber implements EventSubscriberInterface
{
private $twig;
private $settingsRepository;
public function __construct(Environment $twig, SettingsRepository $settingsRepository)
{
$this->twig = $twig;
$this->settingsRepository = $settingsRepository;
}
public function onKernelController(ControllerEvent $event)
{
$this->twig->addGlobal( 'websitetitle', $this->settingsRepository->findOneBy(['name' => 'websitetitle'])->getValue() );
$this->twig->addGlobal( 'navbarcolor', $this->settingsRepository->findOneBy(['name' => 'navbarcolor'])->getValue() );
$this->twig->addGlobal( 'favicon', $this->settingsRepository->findOneBy(['name' => 'favicon'])->getValue() );
$this->twig->addGlobal( 'logo', $this->settingsRepository->findOneBy(['name' => 'logo'])->getValue() );
$this->twig->addGlobal( 'downpaymentpercentage', $this->settingsRepository->findOneBy(['name' => 'downpaymentpercentage'])->getValue() );
$this->twig->addGlobal( 'finalpaymentpercentage', $this->settingsRepository->findOneBy(['name' => 'finalpaymentpercentage'])->getValue() );
}
public static function getSubscribedEvents()
{
return [
'kernel.controller' => 'onKernelController',
];
}
}