/** * 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)) { return; } if ('KunstmaanAdminBundle_settings' == $parent->getRoute()) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanTranslatorBundle_settings_translations')->setLabel('Translations')->setUniqueId('Translations')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; } elseif ('KunstmaanTranslatorBundle_settings_translations' == $parent->getRoute()) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanTranslatorBundle_settings_translations_add')->setUniqueId('Add translation')->setLabel('Add translation')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanTranslatorBundle_settings_translations_edit')->setUniqueId('Edit translation')->setLabel('Edit translation')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } }
/** * @param MenuItem $parent * @param array $item * * @return bool */ private function parentMatches(MenuItem $parent = null, $item) { if (null === $parent) { return null === $item['parent']; } return $item['parent'] === $parent->getRoute(); }
/** * 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) && 'KunstmaanAdminBundle_settings' == $parent->getRoute() && $this->security->isGranted('ROLE_SUPER_ADMIN')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanSeoBundle_settings_robots')->setLabel('Robots')->setUniqueId('robots_settings')->setParent($parent); if (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) && 'KunstmaanAdminBundle_settings' == $parent->getRoute()) { $menuItem = new MenuItem($menu); $menuItem->setRoute('kunstmaanredirectbundle_admin_redirect')->setLabel('Redirects')->setUniqueId('Redirects')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; } }
/** * @param MenuBuilder $menu * @param array $children * @param MenuItem|null $parent * @param Request|null $request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (null !== $parent && 'KunstmaanAdminBundle_modules' === $parent->getRoute()) { $menuItem = new TopMenuItem($menu); $menuItem->setRoute('kunstmaantaggroupbundle_admin_taggroup')->setUniqueId('TagsGroups')->setLabel('Tags Groups')->setParent($parent); if (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|null $parent The parent Menu item * @param Request $request The Request */ public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) { if (null === $parent) { return; } foreach ($this->menuItems as $item) { if ($item['parent'] != $parent->getRoute()) { 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 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)) { return; } else { if ('KunstmaanAdminBundle_settings' == $parent->getRoute()) { if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_users')->setUniqueId('Users')->setLabel('Users')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_groups')->setUniqueId('Groups')->setLabel('Groups')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_roles')->setUniqueId('Roles')->setLabel('Roles')->setParent($parent); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); $parent->setActive(true); } $children[] = $menuItem; } } else { if ('KunstmaanUserManagementBundle_settings_users' == $parent->getRoute()) { if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_users_add')->setUniqueId('Add user')->setLabel('Add user')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_users_edit')->setUniqueId('Edit user')->setLabel('Edit user')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } } else { if ('KunstmaanUserManagementBundle_settings_groups' == $parent->getRoute()) { if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_groups_add')->setUniqueId('Add group')->setLabel('Add group')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_groups_edit')->setUniqueId('Edit group')->setLabel('Edit group')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } } else { if ('KunstmaanUserManagementBundle_settings_roles' == $parent->getRoute()) { if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_roles_add')->setUniqueId('Add role')->setLabel('Add role')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanUserManagementBundle_settings_roles_edit')->setUniqueId('Edit role')->setLabel('Edit role')->setParent($parent)->setAppearInNavigation(false); if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { $menuItem->setActive(true); } $children[] = $menuItem; } } } } } } }
/** * @covers Kunstmaan\AdminBundle\Helper\Menu\MenuItem::getWeight * @covers Kunstmaan\AdminBundle\Helper\Menu\MenuItem::setWeight */ public function testGetSetWeight() { $this->object->setWeight(10); $this->assertEquals(10, $this->object->getWeight()); }
/** * @param MenuBuilder $menu The menu builder * @param MenuItem[] &$children The children array that may be * adapted * @param NodeMenuItem[] $nodes The nodes * @param MenuItem $parent The parent menu item * @param array $activeNodeIds List with id's of all nodes that * should be expanded in the tree */ private function processNodes(MenuBuilder $menu, array &$children, array $nodes, MenuItem $parent = null, array $activeNodeIds) { foreach ($nodes as $child) { $menuItem = new MenuItem($menu); $refName = $child['ref_entity_name']; $menuItem->setRoute('KunstmaanNodeBundle_nodes_edit')->setRouteparams(array('id' => $child['id']))->setUniqueId('node-' . $child['id'])->setLabel($child['title'])->setParent($parent)->setOffline(!$child['online'] && !$this->pagesConfiguration->isStructureNode($refName))->setRole('page')->setWeight($child['weight'])->addAttributes(['page' => ['class' => $refName, 'children' => $this->pagesConfiguration->getPossibleChildTypes($refName), 'icon' => $this->pagesConfiguration->getIcon($refName)]]); if (in_array($child['id'], $activeNodeIds)) { $menuItem->setActive(true); } $children[] = $menuItem; } }
/** * @param MenuBuilder $menu The menu builder * @param MenuItem[] &$children The children array that may be adapted * @param NodeMenuItem[] $nodes The nodes * @param MenuItem $parent The parent menu item * @param array $activeNodeIds List with id's of all nodes that should be expanded in the tree */ private function processNodes(MenuBuilder $menu, array &$children, array $nodes, MenuItem $parent = null, array $activeNodeIds) { foreach ($nodes as $child) { $menuItem = new MenuItem($menu); $menuItem->setRoute('KunstmaanNodeBundle_nodes_edit')->setRouteparams(array('id' => $child['id']))->setUniqueId('node-' . $child['id'])->setLabel($child['title'])->setParent($parent)->setOffline(!$child['online'] && !$this->isStructureNode($child['ref_entity_name']))->setRole('page')->setWeight($child['weight']); if (in_array($child['id'], $activeNodeIds)) { $menuItem->setActive(true); } $children[] = $menuItem; } }