コード例 #1
0
ファイル: NodeRepository.php プロジェクト: bryanbanda/roadiz
 /**
  * @param RZ\Roadiz\Core\Entities\Translation $translation
  * @param RZ\Roadiz\Core\Entities\Node        $parent
  * @param AuthorizationChecker|null               $authorizationChecker When not null, only PUBLISHED node
  * will be request or with a lower status
  *
  * @return Doctrine\Common\Collections\ArrayCollection
  */
 public function findByParentWithTranslation(Translation $translation, Node $parent = null, AuthorizationChecker $authorizationChecker = null)
 {
     $txtQuery = 'SELECT n, ns FROM RZ\\Roadiz\\Core\\Entities\\Node n
                  INNER JOIN n.nodeSources ns
                  INNER JOIN ns.translation t';
     if ($parent === null) {
         $txtQuery .= PHP_EOL . 'WHERE n.parent IS NULL';
     } else {
         $txtQuery .= PHP_EOL . 'WHERE n.parent = :parent';
     }
     $txtQuery .= ' AND t.id = :translation_id';
     $this->alterQueryWithAuthorizationChecker($txtQuery, $authorizationChecker);
     $txtQuery .= ' ORDER BY n.position ASC';
     if ($parent === null) {
         $query = $this->_em->createQuery($txtQuery)->setParameter('translation_id', (int) $translation->getId());
     } else {
         $query = $this->_em->createQuery($txtQuery)->setParameter('parent', $parent)->setParameter('translation_id', (int) $translation->getId());
     }
     if (null !== $authorizationChecker) {
         $query->setParameter('status', Node::PUBLISHED);
     }
     try {
         return $query->getResult();
     } catch (\Doctrine\ORM\NoResultException $e) {
         return null;
     }
 }
コード例 #2
0
ファイル: TagRepository.php プロジェクト: QuangDang212/roadiz
 /**
  * @param RZ\Roadiz\Core\Entities\Translation $translation
  * @param RZ\Roadiz\Core\Entities\Tag         $parent
  *
  * @return array Doctrine result array
  */
 public function findByParentWithTranslation(Translation $translation, Tag $parent = null)
 {
     $query = null;
     if ($parent === null) {
         $query = $this->_em->createQuery('
         SELECT t, tt FROM RZ\\Roadiz\\Core\\Entities\\Tag t
         INNER JOIN t.translatedTags tt
         INNER JOIN tt.translation tr
         WHERE t.parent IS NULL AND tr.id = :translation_id
         ORDER BY t.position ASC')->setParameter('translation_id', (int) $translation->getId());
     } else {
         $query = $this->_em->createQuery('
             SELECT t, tt FROM RZ\\Roadiz\\Core\\Entities\\Tag t
             INNER JOIN t.translatedTags tt
             INNER JOIN tt.translation tr
             INNER JOIN t.parent pt
             WHERE pt.id = :parent AND tr.id = :translation_id
             ORDER BY t.position ASC')->setParameter('parent', $parent->getId())->setParameter('translation_id', (int) $translation->getId());
     }
     try {
         return $query->getResult();
     } catch (\Doctrine\ORM\NoResultException $e) {
         return null;
     }
 }
コード例 #3
0
 /**
  * @param RZ\Roadiz\Core\Entities\Translation $translation
  *
  * @return \Symfony\Component\Form\Form
  */
 private function buildMakeDefaultForm(Translation $translation)
 {
     $builder = $this->createFormBuilder()->add('translationId', 'hidden', ['data' => $translation->getId(), 'constraints' => [new NotBlank()]]);
     return $builder->getForm();
 }