public function load(ObjectManager $manager) { $dataDir = __DIR__ . '/../../Resources/data'; $session = $manager->getPhpcrSession(); $yaml = new Parser(); $basepath = $this->container->getParameter('cmf_simple_cms.persistence.phpcr.basepath'); NodeHelper::createPath($session, preg_replace('#/[^/]*$#', '', $basepath)); $data = $yaml->parse(file_get_contents($dataDir . '/page.yml')); foreach ($data['static'] as $overview) { $this->loadPage($manager, $basepath, $overview); } // load single pages $finder = new Finder(); $finder->files()->name('*.yml')->in($dataDir . '/posts')->sortByName(); foreach ($finder as $pageFile) { $post = array_merge(array('parent' => '/news', 'label' => false, 'format' => 'markdown', 'template' => 'cms/news_detail.html.twig'), $yaml->parse(file_get_contents($pageFile))); $this->loadPage($manager, $basepath, $post); } $data = $yaml->parse(file_get_contents(__DIR__ . '/../../Resources/data/external.yml')); $basepath = $this->container->getParameter('cmf_core.persistence.phpcr.basepath'); $home = $manager->find(null, $basepath); foreach ($data['static'] as $name => $overview) { $item = new MenuNode(); $item->setName($name); $item->setLabel($overview['label']); $item->setUri($overview['uri']); $item->setParentDocument($home); $manager->persist($item); } $blocks = $yaml->parse(file_get_contents(__DIR__ . '/../../Resources/data/block.yml')); $blockBasepath = $this->container->getParameter('cmf_block.persistence.phpcr.block_basepath'); NodeHelper::createPath($session, $blockBasepath); $blocksHome = $manager->find(null, $blockBasepath); foreach ($blocks['static'] as $name => $block) { $this->loadBlock($manager, $blocksHome, $name, $block); } $manager->flush(); }
public function load(ObjectManager $dm) { $this->yaml = new Parser(); parent::load($dm); $data = $this->yaml->parse(file_get_contents(__DIR__ . '/../../Resources/data/external.yml')); $basepath = $this->getBasePath(); $home = $dm->find(null, $basepath); $route = new MultilangRoute(); $route->setPosition($home, 'dynamic'); $route->setDefault('_controller', 'AcmeMainBundle:Demo:dynamic'); $dm->persist($route); foreach ($data['static'] as $name => $overview) { $menuItem = new MenuNode(); $menuItem->setName($name); $menuItem->setParent($home); if (!empty($overview['route'])) { if (!empty($overview['uri'])) { $route = new MultilangRedirectRoute(); $route->setPosition($home, $overview['route']); $route->setUri($overview['uri']); $dm->persist($route); } else { $route = $dm->find(null, $basepath . '/' . $overview['route']); } $menuItem->setRoute($route->getId()); } else { $menuItem->setUri($overview['uri']); } $dm->persist($menuItem); foreach ($overview['label'] as $locale => $label) { $menuItem->setLabel($label); if ($locale) { $dm->bindTranslation($menuItem, $locale); } } } $dm->flush(); }
protected function loadMainMenu(DocumentManager $manager) { $content = new Content(); $content->setTitle('Menu Item Content 1'); $content->setId('/test/content-menu-item-1'); $menu = new Menu(); $menu->setName('test-menu'); $menu->setLabel('Test Menu'); $menu->setParentDocument($this->menuRoot); $manager->persist($menu); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('item-1'); $menuNode->setName('item-1'); $manager->persist($menuNode); $content->addMenuNode($menuNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('This node has a URI'); $menuNode->setUri('http://www.example.com'); $menuNode->setName('item-2'); $manager->persist($menuNode); $content->addMenuNode($menuNode); $subNode = new MenuNode(); $subNode->setParentDocument($menuNode); $subNode->setLabel('@todo this node should have content'); $subNode->setName('sub-item-1'); $manager->persist($subNode); $subNode = new MenuNode(); $subNode->setParentDocument($menuNode); $subNode->setLabel('This node has an assigned route'); $subNode->setName('sub-item-2'); $subNode->setRoute('link_test_route'); $manager->persist($subNode); $subNode = new MenuNode(); $subNode->setParentDocument($menuNode); $subNode->setLabel('This node has an assigned route with parameters'); $subNode->setName('sub-item-3'); $subNode->setRoute('link_test_route_with_params'); $subNode->setRouteParameters(array('foo' => 'bar', 'bar' => 'foo')); $manager->persist($subNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('item-3'); $menuNode->setName('item-3'); $manager->persist($menuNode); $menu = new Menu(); $menu->setName('another-menu'); $menu->setLabel('Another Menu'); $menu->setParentDocument($this->menuRoot); $manager->persist($menu); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('This node has uri, route and content set. but linkType is set to route'); $menuNode->setLinkType('route'); $menuNode->setUri('http://www.example.com'); $menuNode->setRoute('link_test_route'); $menuNode->setName('item-1'); $manager->persist($menuNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('item-2'); $menuNode->setName('item-2'); $manager->persist($menuNode); $manager->persist($content); }