public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (!is_null($parent) && 'KunstmaanAdminBundle_modules' == $parent->getRoute()) { // Page $menuItem = new TopMenuItem($menu); $menuItem->setRoute('sourceboxwebsitebundle_admin_pages_blogpage')->setLabel('Blog Pages')->setUniqueId('Blog')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; // Author $menuItem = new TopMenuItem($menu); $menuItem->setRoute('sourceboxwebsitebundle_admin_blogauthor')->setLabel('Blog Authors')->setUniqueId('Blog Authors')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; } //don't load children if (!is_null($parent) && 'KunstmaanNodeBundle_nodes_edit' == $parent->getRoute()) { foreach ($children as $key => $child) { if ('KunstmaanNodeBundle_nodes_edit' == $child->getRoute()) { $params = $child->getRouteParams(); $id = $params['id']; if (in_array($id, $this->overviewpageIds)) { $child->setChildren(array()); } } } } }
/** * In this method you can add children for a specific parent, but also remove and change the already created children * * @param MenuBuilder $menu The MenuBuilder * @param MenuItem[] &$children The current children * @param MenuItem $parent The parent Menu item * @param Request $request The Request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (is_null($parent)) { $menuItem = new TopMenuItem($menu); $menuItem->setRoute('KunstmaanAdminBundle_modules')->setLabel('Modules')->setUniqueId('modules')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } }
/** * In this method you can add children for a specific parent, but also remove and change the already created * children * * @param MenuBuilder $menu The MenuBuilder * @param MenuItem[] &$children The current children * @param MenuItem|null $parent The parent Menu item * @param Request $request The Request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { foreach ($this->menuItems as $item) { if (false === $this->parentMatches($parent, $item)) { continue; } if ($item['role'] && false === $this->securityContext->isGranted($item['role'])) { continue; } $menuItem = new TopMenuItem($menu); $menuItem->setRoute($item['route'], $item['params'])->setLabel($item['label'])->setUniqueId($item['route'])->setParent($parent); if ($request && stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; } }
/** * In this method you can add children for a specific parent, but also remove and change the already created children * * @param MenuBuilder $menu The MenuBuilder * @param MenuItem[] &$children The current children * @param MenuItem $parent The parent Menu item * @param Request $request The Request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (is_null($parent)) { $menuItem = new TopMenuItem($menu); $menuItem->setRoute('KunstmaanAdminBundle_settings')->setLabel('Settings')->setUniqueId('settings')->setParent($parent)->setRole('settings'); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } elseif ('KunstmaanAdminBundle_settings' == $parent->getRoute()) { if ($this->container->get('security.context')->isGranted('ROLE_SUPER_ADMIN')) { if ($this->container->getParameter('version_checker.enabled')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanAdminBundle_settings_bundle_version')->setLabel('Bundle versions')->setUniqueId('bundle_versions')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } } } }
/** * In this method you can add children for a specific parent, but also * remove and change the already created children * * @param MenuBuilder $menu The menu builder * @param MenuItem[] &$children The children array that may be adapted * @param MenuItem $parent The parent menu item * @param Request $request The request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (is_null($parent)) { $menuItem = new TopMenuItem($menu); $menuItem->setRoute('KunstmaanNodeBundle_nodes')->setUniqueId('pages')->setLabel('Pages')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } elseif (stripos($request->attributes->get('_route'), 'KunstmaanNodeBundle_nodes') === 0) { $treeNodes = $this->getTreeNodes($request->getLocale(), PermissionMap::PERMISSION_EDIT, $this->aclNativeHelper, true); $activeNodeIds = $this->getActiveNodeIds($request); if ('KunstmaanNodeBundle_nodes' == $parent->getRoute() && isset($treeNodes[0])) { $this->processNodes($menu, $children, $treeNodes[0], $parent, $activeNodeIds); } elseif ('KunstmaanNodeBundle_nodes_edit' == $parent->getRoute()) { $parentRouteParams = $parent->getRouteparams(); $parent_id = $parentRouteParams['id']; if (array_key_exists($parent_id, $treeNodes)) { $this->processNodes($menu, $children, $treeNodes[$parent_id], $parent, $activeNodeIds); } } } }