/**
  * 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;
     }
 }