/** * @param HasNodeInterface $hasNode The object * @param NodeTranslation $nodeTranslation The node translation * @param BaseUser $owner The user * @param NodeVersion $origin The nodeVersion this nodeVersion originated from * @param string $type (public|draft) * @param DateTime $created The date this node version is created * * @return NodeVersion */ public function createNodeVersionFor(HasNodeInterface $hasNode, NodeTranslation $nodeTranslation, BaseUser $owner, NodeVersion $origin = null, $type = 'public', $created = null) { $em = $this->getEntityManager(); $nodeVersion = new NodeVersion(); $nodeVersion->setNodeTranslation($nodeTranslation); $nodeVersion->setType($type); $nodeVersion->setOwner($owner); $nodeVersion->setRef($hasNode); $nodeVersion->setOrigin($origin); if (!is_null($created)) { $nodeVersion->setCreated($created); } $em->persist($nodeVersion); $em->flush(); $em->refresh($nodeVersion); return $nodeVersion; }
public function postFlushBuild(Fixture $fixture) { $entities = $fixture->getAdditionalEntities(); $fixtureParams = $fixture->getParameters(); foreach ($fixture->getTranslations() as $language => $data) { /** @var HasNodeInterface $page */ $page = $entities[$fixture->getName() . '_' . $language]; /** @var NodeTranslation $translationNode */ $translationNode = $entities['translationNode_' . $language]; $pagecreator = array_key_exists('creator', $fixtureParams) ? $fixtureParams['creator'] : 'pagecreator'; $creator = $this->userRepo->findOneBy(array('username' => $pagecreator)); $nodeVersion = new NodeVersion(); $nodeVersion->setNodeTranslation($translationNode); $nodeVersion->setType('public'); $nodeVersion->setOwner($creator); $nodeVersion->setRef($page); $translationNode->setPublicNodeVersion($nodeVersion); if (isset($fixtureParams['template'])) { $pageTemplateConfiguration = new PageTemplateConfiguration(); $pageTemplateConfiguration->setPageId($page->getId()); $pageTemplateConfiguration->setPageEntityName(ClassLookup::getClass($page)); $pageTemplateConfiguration->setPageTemplate($fixtureParams['template']); $this->manager->persist($pageTemplateConfiguration); } $this->manager->persist($nodeVersion); $this->manager->persist($translationNode); } $this->manager->flush(); }
/** * Add nodeVersion * * @param NodeVersion $nodeVersion * * @return NodeTranslation */ public function addNodeVersion(NodeVersion $nodeVersion) { $this->nodeVersions[] = $nodeVersion; $nodeVersion->setNodeTranslation($this); if ($nodeVersion->getType() == 'public') { $this->publicNodeVersion = $nodeVersion; } return $this; }
/** * @covers Kunstmaan\NodeBundle\Entity\NodeVersion::setNodeTranslation * @covers Kunstmaan\NodeBundle\Entity\NodeVersion::getNodeTranslation */ public function testSetGetNodeTranslation() { $nodeTrans = new NodeTranslation(); $this->object->setNodeTranslation($nodeTrans); $this->assertEquals($nodeTrans, $this->object->getNodeTranslation()); }
/** * @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')); }
/** * @covers Kunstmaan\NodeBundle\Helper\Menu\ActionsMenuBuilder::createActionsMenu */ public function testShouldShowRecopyButtonWhenTheNodeHasTranslations() { $node = new Node(); $nodeTranslation = new NodeTranslation(); $nodeTranslation->setLang('en'); $node->addNodeTranslation($nodeTranslation); $nodeVersion = new NodeVersion(); $nodeVersion->setType("public"); $nodeVersion->setNodeTranslation($nodeTranslation); $this->builder->setActiveNodeVersion($nodeVersion); $nodeTranslation = new NodeTranslation(); $nodeTranslation->setLang('nl'); $node->addNodeTranslation($nodeTranslation); $nodeVersion = new NodeVersion(); $nodeVersion->setType("public"); $nodeVersion->setNodeTranslation($nodeTranslation); $this->builder->setActiveNodeVersion($nodeVersion); $menu = $this->builder->createActionsMenu(); $this->assertNotNull($menu->getChild('action.recopyfromlanguage')); $this->assertEquals('page-main-actions js-auto-collapse-buttons', $menu->getChildrenAttribute('class')); }
/** * Add nodeVersion * * @param NodeVersion $nodeVersion * * @return NodeTranslation */ public function addNodeVersion(NodeVersion $nodeVersion) { $this->nodeVersions[] = $nodeVersion; $nodeVersion->setNodeTranslation($this); return $this; }