infinito/application/src/Subscriber/SourceMenuSubscriber.php

54 lines
1.6 KiB
PHP
Raw Normal View History

2018-09-20 14:26:28 +02:00
<?php
namespace App\Subscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Translation\TranslatorInterface;
use App\Event\Menu\Topbar\SourceMenuEvent;
class SourceMenuSubscriber implements EventSubscriberInterface
{
/**
* @var TokenStorageInterface
*/
private $tokenStorage;
/**
* @var TranslatorInterface
*/
private $translator;
public function __construct(TokenStorageInterface $tokenStorage, TranslatorInterface $translator)
{
$this->tokenStorage = $tokenStorage;
$this->translator = $translator;
}
public function onSourceMenuConfigure(SourceMenuEvent $event): void
{
$menu = $event->getItem();
$menu->addChild($this->translator->trans('edit'), [
'route' => 'app_source_edit',
'routeParameters' => ['id' => $event->getRequest()->getCurrentRequest()->attributes->get('id')],
'attributes' => [
'icon' => 'fas fa-edit',
],
]);
$menu->addChild($this->translator->trans('show'), [
'route' => 'app_source_show',
'routeParameters' => ['id' => $event->getRequest()->getCurrentRequest()->attributes->get('id')],
'attributes' => [
'icon' => 'fas fa-eye',
],
]);
}
public static function getSubscribedEvents(): array
{
return [
SourceMenuEvent::EVENT => 'onSourceMenuConfigure',
];
}
}