private function createRootNode($page, $language, $internalName, $fixtureParams) { $rootNode = new Node(); $rootNode->setRef($page); $rootNode->setDeleted(false); $rootNode->setInternalName($internalName); $rootNode->setHiddenFromNav(isset($fixtureParams['hidden_from_nav']) ? $fixtureParams['hidden_from_nav'] : false); $parent = $this->getParentNode($fixtureParams, $language); if ($parent instanceof Node) { $rootNode->setParent($parent); } return $rootNode; }
/** * Add children * * @param Node $child * * @return Node */ public function addNode(Node $child) { $this->children[] = $child; $child->setParent($this); return $this; }
/** * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::__construct * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::getFullSlug * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::getSlugPart */ public function testGetFullSlug() { $parentNode = $this->getNodeWithTranslation('nl', 'Parent node title', 'parent-node-slug'); $childNode = new Node(); $childNode->setParent($parentNode); $childNodeTrans = new NodeTranslation(); $childNodeTrans->setLang('nl')->setSlug('child-node-slug'); $childNode->addNodeTranslation($childNodeTrans); $this->assertEquals('parent-node-slug/child-node-slug', $childNodeTrans->getFullSlug()); }
/** * @param HasNodeInterface $hasNode The object to link to * @param string $lang The locale * @param BaseUser $owner The user * @param string $internalName The internal name (may be null) * * @throws \InvalidArgumentException * * @return Node */ public function createNodeFor(HasNodeInterface $hasNode, $lang, BaseUser $owner, $internalName = null) { $em = $this->getEntityManager(); $node = new Node(); $node->setRef($hasNode); if (!$hasNode->getId() > 0) { throw new \InvalidArgumentException("the entity of class " . $node->getRefEntityName() . " has no id, maybe you forgot to flush first"); } $node->setDeleted(false); $node->setInternalName($internalName); $parent = $hasNode->getParent(); if ($parent) { /* @var NodeVersion $parentNodeVersion */ $parentNodeVersion = $em->getRepository('KunstmaanNodeBundle:NodeVersion')->findOneBy(array('refId' => $parent->getId(), 'refEntityName' => ClassLookup::getClass($parent))); if ($parentNodeVersion) { $node->setParent($parentNodeVersion->getNodeTranslation()->getNode()); } } if ($hasNode instanceof HiddenFromNavInterface) { $node->setHiddenFromNav($hasNode->isHiddenFromNav()); } $em->persist($node); $em->flush(); $em->refresh($node); $em->getRepository('KunstmaanNodeBundle:NodeTranslation')->createNodeTranslationFor($hasNode, $lang, $node, $owner); return $node; }
private function createRootNode($page, $language, $internalName, $fixtureParams) { $rootNode = new Node(); $rootNode->setRef($page); $rootNode->setDeleted(false); $rootNode->setInternalName($internalName); $rootNode->setHiddenFromNav(isset($fixtureParams['hidden_from_nav']) ? $fixtureParams['hidden_from_nav'] : false); $parent = $this->getParentNode($fixtureParams, $language); if ($parent instanceof Node) { $rootNode->setParent($parent); if (!$this->canHaveChild($parent->getRefEntityName(), get_class($page))) { throw new \Exception(sprintf('A %s can\'t have a %s as child. Forgot to add in allowed_children or getPossibleChildTypes?', $parent->getRefEntityName(), get_class($page))); } } return $rootNode; }
/** * @covers Kunstmaan\NodeBundle\Helper\Menu\ActionsMenuBuilder::createActionsMenu */ public function testShouldShowDeleteButtonWhenTheNodeHasAParent() { $nodeTranslation = new NodeTranslation(); $node = new Node(); $node->setParent(new Node()); $nodeTranslation->setNode($node); $nodeVersion = new NodeVersion(); $nodeVersion->setType('public'); $nodeVersion->setNodeTranslation($nodeTranslation); $this->builder->setActiveNodeVersion($nodeVersion); $menu = $this->builder->createActionsMenu(); $this->assertNotNull($menu->getChild('action.delete')); $this->assertEquals('page-main-actions js-auto-collapse-buttons', $menu->getChildrenAttribute('class')); }