X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FRepository%2FEntryRepository.php;h=b543c5ae3799e3b21fcbf5c382462bdccb269c02;hb=0faeabefa7faedb3a6a3675a5e49e947554adae9;hp=82eb947462ea1db1e7653d9ffc725313c04ab127;hpb=78833672469f7beb0c4a195aa0a76f7ca4133057;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 82eb9474..b543c5ae 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -95,9 +95,10 @@ class EntryRepository extends EntityRepository * * @return array */ - public function findEntries($userId, $isArchived = null, $isStarred = null, $sort = 'created', $order = 'ASC') + public function findEntries($userId, $isArchived = null, $isStarred = null, $sort = 'created', $order = 'ASC', $since = 0, $tags = '') { $qb = $this->createQueryBuilder('e') + ->leftJoin('e.tags', 't') ->where('e.user =:userId')->setParameter('userId', $userId); if (null !== $isArchived) { @@ -108,6 +109,16 @@ class EntryRepository extends EntityRepository $qb->andWhere('e.isStarred =:isStarred')->setParameter('isStarred', (bool) $isStarred); } + if ($since >= 0) { + $qb->andWhere('e.updatedAt > :since')->setParameter('since', new \DateTime(date('Y-m-d H:i:s', $since))); + } + + if ('' !== $tags) { + foreach (explode(',', $tags) as $tag) { + $qb->andWhere('t.label = :label')->setParameter('label', $tag); + } + } + if ('created' === $sort) { $qb->orderBy('e.id', $order); } elseif ('updated' === $sort) { @@ -157,7 +168,7 @@ class EntryRepository extends EntityRepository ->getQuery() ->getResult(); - $languages = array(); + $languages = []; foreach ($results as $result) { $languages[$result['language']] = $result['language']; } @@ -233,7 +244,7 @@ class EntryRepository extends EntityRepository * @param $url * @param $userId * - * @return array|bool + * @return Entry|bool */ public function findByUrlAndUserId($url, $userId) { @@ -255,7 +266,7 @@ class EntryRepository extends EntityRepository * * @param int $userId * - * @return integer + * @return int */ public function countAllEntriesByUsername($userId) {