Пример #1
0
 /**
  * @param Page[] $pages
  * @param ItemInterface $menu
  * @return ItemInterface
  */
 private function createNestedMenu(array $pages, ItemInterface $menu)
 {
     foreach ($pages as $page) {
         if ($page->getShowInMenu()) {
             $menuItem = $this->factory->createItem($page->getTitle(), ['route' => 'show_page', 'routeParameters' => ['slug' => $page->getSlug()]]);
             $children = $this->repository->getChildren($page, true);
             if (null !== $children) {
                 $this->createNestedMenu($children, $menuItem);
             }
             $menu->addChild($menuItem);
         }
     }
     return $menu;
 }
Пример #2
0
 private function rebuildSlugs(Page $page, NestedTreeRepository $repo, ObjectManager $em, $buildPages = false)
 {
     $pages = [];
     //$page->setSlug(null);
     //$em->persist($page);
     //$em->flush();
     if ($buildPages) {
         $pages[] = ['id' => $page->getId(), 'editUrl' => $this->generateUrl('page_update', ['slug' => $page->getSlug()])];
     }
     $childs = $repo->getChildren($page);
     foreach ($childs as $child) {
         $child->setSlug(null);
         $em->persist($child);
         $em->flush();
         if ($buildPages) {
             $pages[] = ['id' => $child->getId(), 'editUrl' => $this->generateUrl('page_update', ['slug' => $child->getSlug()])];
         }
     }
     return $pages;
 }