Skip to content

Commit

Permalink
Resolver menu item entity class in switch menu event subscriber.
Browse files Browse the repository at this point in the history
  • Loading branch information
Igor Nikolaev committed Apr 8, 2021
1 parent 06449f9 commit 935a2f7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
26 changes: 23 additions & 3 deletions EventListener/SwitchMenuSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ class SwitchMenuSubscriber implements EventSubscriber
*/
private $translationsInitializer;

/**
* @var array
*/
private $entityOverride;

/**
* @var string[]
*/
Expand All @@ -48,12 +53,18 @@ class SwitchMenuSubscriber implements EventSubscriber
/**
* @param \Darvin\MenuBundle\Switcher\MenuSwitcher $menuSwitcher Menu switcher
* @param \Darvin\ContentBundle\Translatable\TranslationsInitializerInterface $translationsInitializer Translations initializer
* @param array $entityOverride Entity override
* @param string[] $locales Locales
*/
public function __construct(MenuSwitcher $menuSwitcher, TranslationsInitializerInterface $translationsInitializer, array $locales)
{
public function __construct(
MenuSwitcher $menuSwitcher,
TranslationsInitializerInterface $translationsInitializer,
array $entityOverride,
array $locales
) {
$this->menuSwitcher = $menuSwitcher;
$this->translationsInitializer = $translationsInitializer;
$this->entityOverride = $entityOverride;
$this->locales = $locales;

$this->em = null;
Expand Down Expand Up @@ -142,7 +153,16 @@ public function preFlush(PreFlushEventArgs $args)
*/
private function createMenuItem($menuAlias, SlugMapItem $slugMapItem)
{
$menuItem = (new Item())
$class = Item::class;

if (isset($this->entityOverride[$class])) {
$class = $this->entityOverride[$class];
}

/** @var \Darvin\MenuBundle\Entity\Menu\Item $menuItem */
$menuItem = new $class();

$menuItem
->setMenu($menuAlias)
->setSlugMapItem($slugMapItem);

Expand Down
1 change: 1 addition & 0 deletions Resources/config/switcher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ services:
arguments:
- "@darvin_menu.switcher"
- "@darvin_content.translatable.translations_initializer"
- "%darvin_admin.entity_override%"
- "%locales%"
tags:
- { name: doctrine.event_subscriber, priority: 100 }

0 comments on commit 935a2f7

Please sign in to comment.