+ $pagerAdapter = new DoctrineORMAdapter($qb);
+
+ return new Pagerfanta($pagerAdapter);
+ }
+
+ /**
+ * Fetch an entry with a tag. Only used for tests.
+ *
+ * @param int $userId
+ *
+ * @return Entry
+ */
+ public function findOneWithTags($userId)
+ {
+ $qb = $this->createQueryBuilder('e')
+ ->innerJoin('e.tags', 't')
+ ->innerJoin('e.user', 'u')
+ ->addSelect('t', 'u')
+ ->where('e.user=:userId')->setParameter('userId', $userId)
+ ;
+
+ return $qb->getQuery()->getResult();
+ }
+
+ /**
+ * Find distinct language for a given user.
+ * Used to build the filter language list.
+ *
+ * @param int $userId User id
+ *
+ * @return array
+ */
+ public function findDistinctLanguageByUser($userId)
+ {
+ $results = $this->createQueryBuilder('e')
+ ->select('e.language')
+ ->where('e.user = :userId')->setParameter('userId', $userId)
+ ->andWhere('e.language IS NOT NULL')
+ ->groupBy('e.language')
+ ->orderBy('e.language', ' ASC')