/** * Modify menu by adding, removing or editing items. * * @param \Knp\Menu\ItemInterface $menu * @param array $options * @param string|null $alias */ public function build(ItemInterface $menu, array $options = array(), $alias = null) { $menuConfig = $this->container->getParameter('oro_menu_config'); if (!empty($menuConfig['items']) && !empty($menuConfig['tree'])) { foreach ($menuConfig['tree'] as $menuTreeName => $menuTreeElement) { if ($menuTreeName == $alias) { if (!empty($menuTreeElement['extras'])) { $menu->setExtras($menuTreeElement['extras']); } if (!empty($menuTreeElement['type'])) { $menu->setExtra('type', $menuTreeElement['type']); } $this->createFromArray($menu, $menuTreeElement['children'], $menuConfig['items'], $options); } } } }