/** * Find and add menu items * * @param MauticEvents\MenuEvent $event */ protected function buildMenu(MauticEvents\MenuEvent $event) { $name = $event->getType(); $session = $this->factory->getSession(); $allItems = $session->get('mautic.menu.items', array()); if (empty($allItems[$name])) { $bundles = $this->factory->getMauticBundles(true); foreach ($bundles as $bundle) { if (!empty($bundle['config']['menu'][$name])) { $menu = $bundle['config']['menu'][$name]; $event->addMenuItems(array('priority' => !isset($menu['priority']) ? 9999 : $menu['priority'], 'items' => !isset($menu['items']) ? $menu : $menu['items'])); } } $allItems[$name] = $event->getMenuItems(); unset($bundles, $menuItems); } else { $event->setMenuItems($allItems[$name]); } }
/** * Find and add menu items * * @param MauticEvents\MenuEvent $event * @param string $name * * @return void */ protected function buildMenu(MauticEvents\MenuEvent $event) { $name = $event->getType(); $session = $this->factory->getSession(); $allItems = $session->get('mautic.menu.items', array()); if (empty($allItems[$name])) { $bundles = $this->factory->getMauticBundles(true); foreach ($bundles as $bundle) { if ($bundle['isAddon'] && !$this->addonHelper->isEnabled($bundle['bundle'])) { continue; } if (!empty($bundle['config']['menu'][$name])) { $menu = $bundle['config']['menu'][$name]; $menuItems[] = array('priority' => !isset($menu['priority']) ? 9999 : $menu['priority'], 'items' => !isset($menu['items']) ? $menu : $menu['items']); } } usort($menuItems, function ($a, $b) { $ap = $a['priority']; $bp = $b['priority']; if ($ap == $bp) { return 0; } return $ap < $bp ? -1 : 1; }); foreach ($menuItems as $items) { $event->addMenuItems($items['items']); } $allItems[$name] = $event->getMenuItems(); unset($bundles, $menuItems); } else { $event->setMenuItems($allItems[$name]); } }