/** * Override this to do your representation of the tree. * * @param string $title * @param int $level 0-based level of the element * @param boolean $hasChilds are there children of this element? if yes, they will be processed in the subsequent calls. * @param int $lang language id * @param string $path path to this element, e.g. '/CatA/CatB' * @param boolean $current if a $currentPage has been specified, this will be set to true if either a parent element of the current element or the current element itself is rendered. * * @return string your string representation of the element. */ protected function renderElement($title, $level, $hasChilds, $lang, $path, $current, $page) { $url = (string) \Cx\Core\Routing\NodePlaceholder::fromNode($page->getNode(), null, array()); $pages = $page->getNode()->getPages(); $titles = array(); foreach ($pages as $page) { $titles[\FWLanguage::getLanguageCodeById($page->getLang())] = $page->getTitle(); } $this->return[] = array('click' => "javascript:{setUrl('{$url}',null,null,'" . \FWLanguage::getLanguageCodeById(BACKEND_LANG_ID) . $path . "','page')}", 'name' => $titles, 'extension' => 'Html', 'level' => $level - 1, 'url' => $path, 'node' => $url); }
protected function insertFixtures() { $nodeRepo = self::$em->getRepository('Cx\\Core\\ContentManager\\Model\\Entity\\Node'); $root = $nodeRepo->getRoot(); $n1 = new \Cx\Core\ContentManager\Model\Entity\Node(); $n2 = new \Cx\Core\ContentManager\Model\Entity\Node(); $n3 = new \Cx\Core\ContentManager\Model\Entity\Node(); $n4 = new \Cx\Core\ContentManager\Model\Entity\Node(); //redirection $n5 = new \Cx\Core\ContentManager\Model\Entity\Node(); //alias $n1->setParent($root); $n2->setParent($n1); $n3->setParent($n2); $n4->setParent($root); $n5->setParent($root); $root->addChildren($n1); $n1->addChildren($n2); $n2->addChildren($n3); $root->addChildren($n4); $root->addChildren($n4); self::$em->persist($n1); self::$em->persist($n2); self::$em->persist($n3); self::$em->persist($n4); self::$em->flush(); $p1 = new \Cx\Core\ContentManager\Model\Entity\Page(); $p1->setLang(1); $p1->setTitle('resolver testpage1'); $p1->setNode($n1); $p1->setNodeIdShadowed($n1->getId()); $p1->setUseCustomContentForAllChannels(''); $p1->setUseCustomApplicationTemplateForAllChannels(''); $p1->setUseSkinForAllChannels(''); $p1->setCmd(''); $p1->setActive(1); $p4 = new \Cx\Core\ContentManager\Model\Entity\Page(); $p4->setLang(1); $p4->setTitle('testpage1_child'); $p4->setNode($n2); $p4->setNodeIdShadowed($n2->getId()); $p4->setUseCustomContentForAllChannels(''); $p4->setUseCustomApplicationTemplateForAllChannels(''); $p4->setUseSkinForAllChannels(''); $p4->setCmd(''); $p4->setActive(1); self::$em->persist($n1); self::$em->persist($n2); self::$em->persist($p1); self::$em->persist($p4); self::$em->flush(); self::$em->refresh($n1); self::$em->refresh($n2); $p5 = new \Cx\Core\ContentManager\Model\Entity\Page(); $p5->setLang(1); $p5->setTitle('subtreeTest_target'); $p5->setNode($n3); $p5->setNodeIdShadowed($n3->getId()); $p5->setUseCustomContentForAllChannels(''); $p5->setUseCustomApplicationTemplateForAllChannels(''); $p5->setUseSkinForAllChannels(''); $p5->setCmd(''); $p5->setActive(1); $p6 = new \Cx\Core\ContentManager\Model\Entity\Page(); $p6->setLang(0); $p6->setTitle('testalias'); $p6->setNode($n5); $p6->setType(\Cx\Core\ContentManager\Model\Entity\Page::TYPE_ALIAS); $p6->setTarget($p4->getId() . '|1'); $p6->setNodeIdShadowed($n5->getId()); $p6->setUseCustomContentForAllChannels(''); $p6->setUseCustomApplicationTemplateForAllChannels(''); $p6->setUseSkinForAllChannels(''); $p6->setCmd(''); $p6->setActive(1); self::$em->persist($n3); self::$em->persist($n5); self::$em->persist($p5); self::$em->persist($p6); self::$em->flush(); self::$em->refresh($n3); self::$em->refresh($n5); $p2 = new \Cx\Core\ContentManager\Model\Entity\Page(); $p2->setLang(1); $p2->setType(\Cx\Core\ContentManager\Model\Entity\Page::TYPE_REDIRECT); $p2->setTitle('redirection'); $p2->setNode($n4); $p2->setTarget(\Cx\Core\Routing\NodePlaceholder::fromNode($n2, 1, array('foo' => 'test'))->getPlaceholder()); $p2->setNodeIdShadowed($n4->getId()); $p2->setUseCustomContentForAllChannels(''); $p2->setUseCustomApplicationTemplateForAllChannels(''); $p2->setUseSkinForAllChannels(''); $p2->setCmd(''); $p2->setActive(1); self::$em->persist($p2); self::$em->flush(); self::$em->refresh($n4); self::$em->refresh($p2); }