/** * Load data fixtures with the passed EntityManager * * @param ObjectManager|DocumentManager $manager */ public function load(ObjectManager $manager) { $contentParent = $manager->find(null, '/cms/content'); $routeParent = $manager->find(null, '/cms/routes/en/services'); $menuBase = $manager->find(null, '/cms/menu/footer'); $content = new DemoSeoContent(); $content->setParentDocument($contentParent); $content->setName('seo-service'); $content->setTitle('SEO Service'); $content->setBody('A page about SEO service'); $metaData = new SeoMetadata(); $metaData->setMetaDescription('Description in Metadata'); $content->setSeoMetadata($metaData); $manager->persist($content); $manager->bindTranslation($content, 'en'); $contentRoute = new Route(); $contentRoute->setParentDocument($routeParent); $contentRoute->setName('seo-service'); $contentRoute->setContent($content); $manager->persist($contentRoute); $menuNode = new MenuNode(); $menuNode->setParentDocument($menuBase); $menuNode->setName('seo-service'); $menuNode->setLabel('SEO Services'); $menuNode->setContent($content); $manager->persist($menuNode); $manager->flush(); }
/** * Load data fixtures with the passed DocumentManager * * @param DocumentManager $manager */ public function load(ObjectManager $manager) { if (!$manager instanceof DocumentManager) { $class = get_class($manager); throw new \RuntimeException("Fixture requires a PHPCR ODM DocumentManager instance, instance of '{$class}' given."); } // tweak homepage $page = $manager->find(null, '/cms/simple'); $page->setBody('Hello'); $page->setDefault('_template', 'AcmeDemoBundle::home.html.twig'); // add menu item for home $menuRoot = $manager->find(null, '/cms/simple'); $homeMenuNode = new MenuNode('home'); $homeMenuNode->setLabel('Home'); $homeMenuNode->setParentDocument($menuRoot); $homeMenuNode->setContent($page); $manager->persist($homeMenuNode); // load the pages Fixtures::load(array(__DIR__ . '/../../Resources/data/pages.yml'), $manager); // add menu item for login $loginMenuNode = new MenuNode('login'); $loginMenuNode->setLabel('Admin Login'); $loginMenuNode->setParentDocument($menuRoot); $loginMenuNode->setRoute('_demo_login'); $manager->persist($loginMenuNode); // load the blocks NodeHelper::createPath($manager->getPhpcrSession(), '/cms/content/blocks'); Fixtures::load(array(__DIR__ . '/../../Resources/data/blocks.yml'), $manager); // save the changes $manager->flush(); }
public function setUp() { $c1 = new MenuNode(); $c1->setLabel('Child 1'); $c2 = new MenuNode(); $c2->setLabel('Child 2'); $this->content = new \stdClass(); $this->parentNode = new MenuNode(); $this->node = new MenuNode(); $this->node->setId('/foo/bar')->setParentDocument($this->parentNode)->setName('test')->setLabel('Test')->setUri('http://www.example.com')->setRoute('test_route')->setContent($this->content)->setAttributes(array('foo' => 'bar'))->setChildrenAttributes(array('bar' => 'foo'))->setExtras(array('far' => 'boo'))->setLinkAttributes(array('link' => 'knil'))->setLabelAttributes(array('label' => 'lebal'))->setDisplay(false)->setDisplayChildren(false)->setRouteAbsolute(true)->setLinkType('linktype'); }
/** * @param \Acme\BasicCmsBundle\Document\Page $document * @return void */ public function postUpdate($document) { $nodeMenu = $this->getModelManager()->find(null, $document->getId()); if (null === $nodeMenu) { $menu = $this->getModelManager()->find('Symfony\\Cmf\\Bundle\\MenuBundle\\Doctrine\\Phpcr\\Menu', '/cms/menu/main-menu'); $nodeMenu = new MenuNode(); $nodeMenu->setName($document->getSlug()); $nodeMenu->setLabel($document->getTitle()); $nodeMenu->setContent($document); $nodeMenu->setParentDocument($menu); /** @var DocumentManager $documentManager */ $documentManager = $this->container->get('doctrine_phpcr')->getManager(); $documentManager->persist($nodeMenu); $documentManager->flush(); } }
/** * Load data fixtures with the passed EntityManager * * @param ObjectManager|DocumentManager $manager */ public function load(ObjectManager $manager) { if (!$manager instanceof DocumentManager) { $class = get_class($manager); throw new \RuntimeException("Fixture requires a PHPCR ODM DocumentManager instance, instance of '{$class}' given."); } // tweak homepage $page = $manager->find(null, '/cms/simple'); $page->setBody('Hello'); $page->setDefault('_template', 'IPCApplicationBundle::home.html.twig'); // add menu item for home $menuRoot = $manager->find(null, '/cms/simple'); $homeMenuNode = new MenuNode('home'); $homeMenuNode->setLabel('Home'); $homeMenuNode->setParentDocument($menuRoot); $homeMenuNode->setContent($page); $manager->persist($homeMenuNode); // load the pages Fixtures::load(array(__DIR__ . '/../../Resources/data/pages.yml'), $manager); // save the changes $manager->flush(); }
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(); }
/** * Creates pages and their corresponding routes & menu entries * @param ObjectManager $this->documentManager PHPCR ODM DocumentManager instance */ private function createLondaPages() { //the menus $mainMenu = $this->createMenus(); $pages = Yaml::parse(file_get_contents(__DIR__ . '/../../Resources/data/pages.yml')); //Create the pages and their corresponding routes and menu nodes foreach ($pages["KanzuCode\\LondaBundle\\Document\\Page"] as $pageId => $page) { //Define the route $route = new Route(); $route->setParentDocument($this->documentManager->find(null, $this->config['parameters']['londa.basepath.routes'])); $route->setName($page['route']); if (isset($page['template'])) { $route->setDefault('_template', "KanzuCodeLondaBundle:Default:{$page['template']}.html.twig"); } if (isset($page['controller'])) { $route->setDefault('_controller', "KanzuCodeLondaBundle:LondaContent:{$page['controller']}"); } $this->documentManager->persist($route); // add the route //Add menu node $menuNode = new MenuNode(); $menuNode->setName($pageId); $menuNode->setLabel($page['title']); $menuNode->setParentDocument($mainMenu); $this->documentManager->persist($menuNode); //Do the content $content = new Page(); $content->setParentDocument($this->documentManager->find(null, $this->config['parameters']['londa.basepath.pages'])); $content->setName($pageId); $content->setTitle($page['title']); $content->setBody($page['body']); $content->addRoute($route); $content->addMenuNode($menuNode); $this->documentManager->persist($content); } }
protected function loadVoterMenu(DocumentManager $manager) { // test content $content = new Content(); $content->setTitle('Content 1'); $content->setId('/test/content-1'); $manager->persist($content); $route = new Route(); $route->setId('/test/routes/contents/content-1'); $route->setDefault('_controller', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Tests\\Resources\\Controller\\VoterController::requestContentIdentityAction'); $route->setContent($content); $manager->persist($route); // test blog $blog = new Content(); $blog->setTitle('Blog'); $blog->setId('/test/blog-1'); $manager->persist($blog); $route = new Route(); $route->setId('/test/routes/blog'); $route->setDefault('_controller', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Tests\\Resources\\Controller\\VoterController::blogAction'); $route->setContent($blog); $manager->persist($route); // test blog post $post = new Post(); $post->setTitle('My Post'); $post->setId('/test/blog-1/my-post'); $manager->persist($post); $route = new Route(); $route->setId('/test/routes/blog/my-post'); $route->setDefault('_controller', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Tests\\Resources\\Controller\\VoterController::postAction'); $route->setContent($post); $manager->persist($route); // test articles $articles = new Content(); $articles->setTitle('Articles Index'); $articles->setId('/test/articles'); $manager->persist($articles); $articlesRoute = new Route(); $articlesRoute->setId('/test/routes/articles'); $articlesRoute->setDefault('_controller', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Tests\\Resources\\Controller\\VoterController::articlesAction'); $articlesRoute->setContent($articles); $articlesRoute->setOption('currentUriPrefix', '/articles'); $manager->persist($articlesRoute); $article1 = new Content(); $article1->setTitle('Article 1'); $article1->setId('/test/article-1'); $manager->persist($article1); $route = new Route(); $route->setId('/test/routes/articles/some-category'); $manager->persist($route); $route = new Route(); $route->setId('/test/routes/articles/some-category/article-1'); $route->setDefault('_controller', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Tests\\Resources\\Controller\\VoterController::postAction'); $route->setContent($article1); $manager->persist($route); // menu items $menu = new Menu(); $menu->setName('side-menu'); $menu->setLabel('Side Menu'); $menu->setParentDocument($this->menuRoot); $manager->persist($menu); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('Default Behavior'); $menuNode->setName('default'); $menuNode->setRoute('current_menu_item_default'); $manager->persist($menuNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('Request Content Identity Voter'); $menuNode->setName('request-content-identity-voter'); $menuNode->setContent($content); $manager->persist($menuNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('URI Prefix Voter'); $menuNode->setName('uri-prefix-voter'); $menuNode->setContent($articlesRoute); $manager->persist($menuNode); $menuNode = new MenuNode(); $menuNode->setParentDocument($menu); $menuNode->setLabel('Request Parent Content Identity Voter'); $menuNode->setName('request-parent-content-identity-voter'); $menuNode->setContent($blog); $manager->persist($menuNode); }
public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $root = $manager->find(null, '/test'); $parent = new Generic(); $parent->setParentDocument($root); $parent->setNodename('blocks'); $manager->persist($parent); //Simple $block = new SimpleBlock(); $block->setParentDocument($parent); $block->setName('block-1'); $block->setTitle('block-1-title'); $block->setBody('block-1-body'); $manager->persist($block); $block = new SimpleBlock(); $block->setParentDocument($parent); $block->setName('block-2'); $block->setTitle('block-2-title'); $block->setBody('block-2-body'); $block->setPublishable(false); $manager->persist($block); //Action $actionBlockOne = new ActionBlock(); $actionBlockOne->setParentDocument($parent); $actionBlockOne->setName('action-block-1'); $actionBlockOne->setActionName('cmf_block_test.test_controller:dummyAction'); $actionBlockOne->setPublishable(true); $manager->persist($actionBlockOne); $actionBlockTwo = new ActionBlock(); $actionBlockTwo->setParentDocument($parent); $actionBlockTwo->setName('action-block-2'); $actionBlockTwo->setActionName('FooBundle:Bar:actionTwo'); $actionBlockTwo->setPublishable(false); $manager->persist($actionBlockTwo); //Container $childBlockOne = new SimpleBlock(); $childBlockOne->setName('block-child-1'); $childBlockOne->setTitle('block-child-1-title'); $childBlockOne->setBody('block-child-1-body'); $containerBlock = new ContainerBlock(); $containerBlock->setParentDocument($parent); $containerBlock->setName('container-block-1'); $containerBlock->addChild($childBlockOne); $manager->persist($containerBlock); $block = new ContainerBlock(); $block->setParentDocument($parent); $block->setName('container-block-2'); $block->setPublishable(false); $manager->persist($block); //Reference $block = new ReferenceBlock(); $block->setParentDocument($parent); $block->setName('reference-block-1'); $block->setReferencedBlock($actionBlockOne); $manager->persist($block); $block = new ReferenceBlock(); $block->setParentDocument($parent); $block->setName('reference-block-2'); $block->setReferencedBlock($actionBlockTwo); $block->setPublishable(false); $manager->persist($block); // Menu Nodes NodeHelper::createPath($manager->getPhpcrSession(), '/test/menus'); $menuRoot = $manager->find(null, '/test/menus'); $menu = new Menu(); $menu->setName('test-menu'); $menu->setLabel('Test Menu'); $menu->setParentDocument($menuRoot); $manager->persist($menu); $menuNodeOne = new MenuNode(); $menuNodeOne->setName('menu-node-1'); $menuNodeOne->setLabel('menu-node-1'); $menuNodeOne->setParentDocument($menu); $manager->persist($menuNodeOne); $menuNodeTwo = new MenuNode(); $menuNodeTwo->setName('menu-node-2'); $menuNodeTwo->setLabel('menu-node-2'); $menuNodeTwo->setParentDocument($menu); $manager->persist($menuNodeTwo); //Menu $block = new MenuBlock(); $block->setParentDocument($parent); $block->setName('menu-block-1'); $block->setMenuNode($menuNodeOne); $manager->persist($block); $block = new MenuBlock(); $block->setParentDocument($parent); $block->setName('menu-block-2'); $block->setMenuNode($menuNodeTwo); $block->setPublishable(false); $manager->persist($block); //String $block = new StringBlock(); $block->setParentDocument($parent); $block->setName('string-block-1'); $block->setBody('string-block-1-body'); $manager->persist($block); $block = new StringBlock(); $block->setParentDocument($parent); $block->setName('string-block-2'); $block->setBody('string-block-2-body'); $block->setPublishable(false); $manager->persist($block); $manager->flush(); }
protected function loadMenu(DocumentManager $manager) { $route = new Route(); $route->setName('content-1'); $route->setParentDocument($this->routeRoot); $manager->persist($route); $content = new Content(); $content->setTitle('Menu Item Content 1'); $content->setId('/test/content-menu-item-1'); $content->addRoute($route); $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); $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); $subNode = new MenuNode(); $subNode->setParentDocument($menuNode); $subNode->setLabel('This node has content'); $subNode->setName('sub-item-1'); $subNode->setContent($content); $manager->persist($subNode); $content->addMenuNode($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); }
/** * Create a menu node (an item in a menu) * @param string $menuName The node name * @param string $menuLabel The node label * @param Menu $mainMenu Menu to which the node should be added */ private function createMainMenuNode($menuName, $menuLabel, $mainMenu) { $menuNode = new MenuNode(); $menuNode->setName($menuName); $menuNode->setLabel($menuLabel); $menuNode->setParentDocument($mainMenu); return $menuNode; }