Implement site-wide page header

This commit is contained in:
2024-07-28 00:55:18 -04:00
parent e0d6563583
commit edda567057
2 changed files with 41 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\EventSubscriber;
use App\Repository\ConferenceRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
use Twig\Environment;
class TwigEventSubscriber implements EventSubscriberInterface
{
private $twig;
private $conferenceRepository;
public function __construct(Environment $twig, ConferenceRepository $conferenceRepository)
{
$this->twig = $twig;
$this->conferenceRepository = $conferenceRepository;
}
public function onControllerEvent(ControllerEvent $event): void
{
$this->twig->addGlobal('conferences', $this->conferenceRepository->findAll());
}
public static function getSubscribedEvents(): array
{
return [
ControllerEvent::class => 'onControllerEvent',
];
}
}

View File

@@ -12,6 +12,15 @@
{% endblock %}
</head>
<body>
<header>
<h1><a href="{{ path('homepage') }}">Guestbook</a></h1>
<ul>
{%for conference in conferences %}
<li><a href="{{ path('conference', { id: conference.id }) }}">{{ conference }}</a></li>
{% endfor %}
</ul>
<hr/>
</header>
{% block body %}{% endblock %}
</body>
</html>