/** * @param \Doctrine\Common\Persistence\ObjectManager $manager * @param $locale */ public function createMenuItems(ObjectManager $manager, $locale) { $menuRoot = new MenuItem(); $menuRoot->setName('Main menu'); $menuRoot->setLocale($locale); $menuRoot->setIsRoot(true); $menuRoot->setLvl(1); $menuRoot->setLft(1); $menuRoot->setRgt(2); $manager->persist($menuRoot); $manager->flush(); $homePageMenu = new MenuItem(); $homePageMenu->setName('Homepage'); $homePageMenu->setPage($this->getReference('homepage_' . $locale)); $homePageMenu->setParent($menuRoot); $manager->persist($homePageMenu); $manager->flush(); $footerRoot = new MenuItem(); $footerRoot->setName('Footer menu'); $footerRoot->setLocale($locale); $footerRoot->setIsRoot(true); $footerRoot->setLvl(1); $footerRoot->setLft(1); $footerRoot->setRgt(2); $manager->persist($footerRoot); $manager->flush(); }
/** * @param \Symfony\Component\HttpFoundation\Request $request * @param $rootId * @param $pageId * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function createFromPageAction(Request $request, $rootId, $pageId) { $rootNode = $this->admin->getObject($rootId); if (!$rootNode) { throw new NotFoundHttpException(sprintf('unable to find the Menu with id : %s', $rootId)); } $page = $this->get('networking_init_cms.page_manager')->find($pageId); if (!$page) { throw new NotFoundHttpException(sprintf('unable to find the Page with id : %s', $pageId)); } $menuItem = new MenuItem(); $menuItem->setPage($page); $menuItem->setRoot($rootNode); $menuItem->setParent($rootNode); $menuItem->setName($page->getTitle()); $em = $this->getDoctrine()->getManager(); $em->persist($menuItem); $em->flush(); $this->admin->createObjectSecurity($menuItem); return $this->redirect($this->admin->generateUrl('list', array('page_id' => $page->getId(), 'menu_id' => $menuItem->getId())) . '#end'); }