vendor/bluue/tickets-bundle/src/EventSubscriber/ConfigureListButtonsSubscriber.php line 48

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Bluue\TicketsBundle\EventSubscriber;
  4. use App\Event\MassManagementListButtonsEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\Routing\RouterInterface;
  7. use Symfony\Contracts\Translation\TranslatorInterface;
  8. class ConfigureListButtonsSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var RouterInterface
  12.      */
  13.     private RouterInterface $router;
  14.     /**
  15.      * @var TranslatorInterface
  16.      */
  17.     private TranslatorInterface $tr;
  18.     /**
  19.      * @param RouterInterface $router
  20.      * @param TranslatorInterface $tr
  21.      */
  22.     public function __construct(RouterInterface $routerTranslatorInterface $tr)
  23.     {
  24.         $this->router $router;
  25.         $this->tr $tr;
  26.     }
  27.     /**
  28.      * @return string[]
  29.      */
  30.     public static function getSubscribedEvents(): array
  31.     {
  32.         return [
  33.             MassManagementListButtonsEvent::NAME => 'onLoad'
  34.         ];
  35.     }
  36.     /**
  37.      * @param MassManagementListButtonsEvent $event
  38.      * @return void
  39.      */
  40.     public function onLoad(MassManagementListButtonsEvent $event): void
  41.     {
  42.         if (str_starts_with($event->getListName(), '_tickets_bundle__ticket_list_')) {
  43.             $buttons $event->getButtons();
  44.             $massSpamBtn '<a href="' $this->router->generate(
  45.                 'tickets_bundle__ticket_mass_spam'
  46.             ) . '" ';
  47.             $massSpamBtn .= 'class="btn btn-sm btn-primary mx-2">';
  48.             $massSpamBtn .= $this->tr->trans('Spam', [], 'TicketsBundle') . '</a>';
  49.             $massChangeStatusBtn '<a href="' $this->router->generate(
  50.                 'tickets_bundle__ticket_mass_change_status'
  51.             ) . '" class="btn btn-sm btn-primary mx-2 bluue-modal-button" ' .
  52.             'bluue-modal-label="' $this->tr->trans('Change state', [], 'TicketsBundle') . '">';
  53.             $massChangeStatusBtn .= $this->tr->trans('Change state', [], 'TicketsBundle') . '</a>';
  54.             $buttons[] = [$massSpamBtn];
  55.             $buttons[] = [$massChangeStatusBtn];
  56.             $event->setButtons($buttons);
  57.         }
  58.     }
  59. }