vendor/ibexa/form-builder/src/bundle/Menu/ConfigureMainMenuListener.php line 43

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. declare(strict_types=1);
  7. namespace Ibexa\Bundle\FormBuilder\Menu;
  8. use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent;
  9. use Ibexa\AdminUi\Menu\MainMenuBuilder;
  10. use Ibexa\AdminUi\Menu\MenuItemFactory;
  11. use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
  12. use JMS\TranslationBundle\Model\Message;
  13. use JMS\TranslationBundle\Translation\TranslationContainerInterface;
  14. class ConfigureMainMenuListener implements TranslationContainerInterface
  15. {
  16.     public const ITEM_CONTENT__FORMS 'main__content__form_builder';
  17.     /** @var \Ibexa\AdminUi\Menu\MenuItemFactory */
  18.     private $menuItemFactory;
  19.     /** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
  20.     private $configResolver;
  21.     /**
  22.      * @param \Ibexa\AdminUi\Menu\MenuItemFactory $menuItemFactory
  23.      * @param \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface $configResolver
  24.      */
  25.     public function __construct(
  26.         MenuItemFactory $menuItemFactory,
  27.         ConfigResolverInterface $configResolver
  28.     ) {
  29.         $this->menuItemFactory $menuItemFactory;
  30.         $this->configResolver $configResolver;
  31.     }
  32.     /**
  33.      * @param \Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent $event
  34.      */
  35.     public function onMenuConfigure(ConfigureMenuEvent $event): void
  36.     {
  37.         $formsLocationId $this->configResolver->getParameter('form_builder.forms_location_id');
  38.         $formLocationMenuItem $this->menuItemFactory->createLocationMenuItem(
  39.             self::ITEM_CONTENT__FORMS,
  40.             $formsLocationId,
  41.             [
  42.                 'attributes' => [
  43.                     'data-tooltip-placement' => 'right',
  44.                     'data-tooltip-extra-class' => 'ibexa-tooltip--navigation',
  45.                 ],
  46.                 'extras' => [
  47.                     'icon' => 'form',
  48.                     'orderNumber' => 45,
  49.                 ],
  50.             ]
  51.         );
  52.         if ($formLocationMenuItem !== null) {
  53.             $root $event->getMenu();
  54.             $root->getChild(MainMenuBuilder::ITEM_CONTENT)->addChild($formLocationMenuItem);
  55.         }
  56.     }
  57.     /**
  58.      * {@inheritdoc}
  59.      */
  60.     public static function getTranslationMessages(): array
  61.     {
  62.         return [
  63.             (new Message(self::ITEM_CONTENT__FORMS'ibexa_menu'))->setDesc('Forms'),
  64.         ];
  65.     }
  66. }
  67. class_alias(ConfigureMainMenuListener::class, 'EzSystems\EzPlatformFormBuilderBundle\Menu\ConfigureMainMenuListener');