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();
 }
示例#3
0
 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);
 }