/** * @param NodeTranslation $value * * @return string */ public function transform($value) { if (null === $value) { return ""; } if (false === $value instanceof NodeTranslation) { throw new TransformationFailedException("Value must be instance of NodeTranslation"); } return $this->router->generate('_slug', ['_locale' => $value->getLang(), 'url' => $value->getUrl()]); }
/** * @inheritDoc * @todo: remove after PR #1108 is merged * * @see https://github.com/Kunstmaan/KunstmaanBundlesCMS/pull/1108 */ protected function renderCustomSearchView(NodeTranslation $nodeTranslation, SearchViewTemplateInterface $page, EngineInterface $renderer) { $view = $page->getSearchView(); $renderContext = new RenderContext(['locale' => $nodeTranslation->getLang(), 'page' => $page, 'indexMode' => true, 'nodetranslation' => $nodeTranslation]); if ($page instanceof PageInterface) { $request = $this->container->get('request_stack')->getCurrentRequest(); $page->service($this->container, $request, $renderContext); } $content = $this->removeHtml($renderer->render($view, $renderContext->getArrayCopy())); return $content; }
/** * 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(); }
/** * Render default search view (all indexable pageparts in the main context * of the page) * * @param NodeTranslation $nodeTranslation * @param HasPagePartsInterface $page * @param EngineInterface $renderer * * @return string */ protected function renderDefaultSearchView(NodeTranslation $nodeTranslation, HasPagePartsInterface $page, EngineInterface $renderer) { $pageparts = $this->indexablePagePartsService->getIndexablePageParts($page); $view = 'KunstmaanNodeSearchBundle:PagePart:view.html.twig'; $content = $this->removeHtml($renderer->render($view, array('locale' => $nodeTranslation->getLang(), 'page' => $page, 'pageparts' => $pageparts, 'indexMode' => true))); return $content; }
/** * 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::setLang * @covers Kunstmaan\NodeBundle\Entity\NodeTranslation::getLang */ public function testSetGetLang() { $this->object->setLang('nl'); $this->assertEquals('nl', $this->object->getLang()); }
/** * 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'); }