/** * Build iterator * * NOTE : The submission fields are added as export fields as well ... */ public function buildIterator() { $qb = $this->em->createQueryBuilder(); $qb->select('fs')->from('KunstmaanFormBundle:FormSubmission', 'fs')->innerJoin('fs.node', 'n', 'WITH', 'fs.node = n.id')->andWhere('n.id = :node')->andWhere('fs.lang = :lang')->setParameter('node', $this->nodeTranslation->getNode()->getId())->setParameter('lang', $this->nodeTranslation->getLang())->addOrderBy('fs.created', 'DESC'); $iterableResult = $qb->getQuery()->iterate(); $isHeaderWritten = false; $collection = new ArrayCollection(); foreach ($iterableResult as $row) { /* @var FormSubmission $submission */ $submission = $row[0]; // Write row data $data = array('id' => $submission->getId(), 'date' => $submission->getCreated()->format('d/m/Y H:i:s'), 'language' => $submission->getLang()); foreach ($submission->getFields() as $field) { $header = $this->translator->trans($field->getLabel()); if (!$isHeaderWritten) { $this->addExportField($header, $header); } $data[$header] = $field->__toString(); } $isHeaderWritten = true; $collection->add(array($data)); } $this->iterator = $collection->getIterator(); }
/** * Add page content to the index document * * @param NodeTranslation $nodeTranslation * @param HasNodeInterface $page * @param array $doc * * @return array */ protected function addPageContent(NodeTranslation $nodeTranslation, $page, &$doc) { $this->enterRequestScope($nodeTranslation->getLang()); if ($this->logger) { $this->logger->debug(sprintf('Indexing page "%s" / lang : %s / type : %s / id : %d / node id : %d', $page->getTitle(), $nodeTranslation->getLang(), get_class($page), $page->getId(), $nodeTranslation->getNode()->getId())); } $renderer = $this->container->get('templating'); $doc['content'] = ''; if ($page instanceof SearchViewTemplateInterface) { $doc['content'] = $this->renderCustomSearchView($nodeTranslation, $page, $renderer); return; } if ($page instanceof HasPagePartsInterface) { $doc['content'] = $this->renderDefaultSearchView($nodeTranslation, $page, $renderer); return; } }
/** * Checks if a nodetranslation has children and update their url * @param NodeTranslation $node The node * @param EntityManager $em The entity manager */ private function updateNodeChildren(NodeTranslation $node, EntityManager $em) { $children = $node->getNode()->getChildren(); if (count($children) > 0) { /* @var Node $child */ foreach ($children as $child) { $translation = $child->getNodeTranslation($node->getLang(), true); if ($translation) { $translation = $this->updateUrl($translation, $em); if ($translation !== false) { $em->persist($translation); $em->flush($translation); $this->updateNodeChildren($translation, $em); } } } } }
public function getParentNodeTranslation(NodeTranslation $nodeTranslation) { $parent = $nodeTranslation->getNode()->getParent(); if (is_null($parent)) { return null; } $qb = $this->createQueryBuilder('nt')->select('nt,n')->innerJoin('nt.publicNodeVersion', 'nv')->innerJoin('nt.node', 'n')->where('nt.node = :parent')->andWhere('n.deleted = 0')->andWhere('nt.lang = :lang')->setParameter('parent', $parent)->setParameter('lang', $nodeTranslation->getLang()); return $qb->getQuery()->getOneOrNullResult(); }
/** * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::setNode * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::getNode */ public function testSetGetNode() { $node = new Node(); $this->object->setNode($node); $this->assertEquals($node, $this->object->getNode()); }
/** * @param NodeTranslation $nodeTranslation The NodeTranslation * @param \DateTime $date The date to unpublish * * @throws AccessDeniedException */ public function unPublishLater(NodeTranslation $nodeTranslation, \DateTime $date) { $node = $nodeTranslation->getNode(); if (false === $this->authorizationChecker->isGranted(PermissionMap::PERMISSION_UNPUBLISH, $node)) { throw new AccessDeniedException(); } //remove existing first $this->unSchedulePublish($nodeTranslation); $user = $this->tokenStorage->getToken()->getUser(); $queuedNodeTranslationAction = new QueuedNodeTranslationAction(); $queuedNodeTranslationAction->setNodeTranslation($nodeTranslation)->setAction(QueuedNodeTranslationAction::ACTION_UNPUBLISH)->setUser($user)->setDate($date); $this->em->persist($queuedNodeTranslationAction); $this->em->flush(); }
/** * Make some modifications to the default created query builder * * @param QueryBuilder $queryBuilder The query builder * @param array $params The parameters */ public function adaptQueryBuilder(QueryBuilder $queryBuilder, array $params = array()) { parent::adaptQueryBuilder($queryBuilder); $queryBuilder->innerJoin('b.node', 'n', 'WITH', 'b.node = n.id')->andWhere('n.id = :node')->andWhere('b.lang = :lang')->setParameter('node', $this->nodeTranslation->getNode()->getId())->setParameter('lang', $this->nodeTranslation->getLang())->addOrderBy('b.created', 'DESC'); }
private function nodeTranslationToCategory(NodeTranslation $nt) { return new Category($nt->getTitle(), $nt->getNode()->getId(), $nt->getUrl()); }