mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 20:43:25 +00:00
Add more search methods to repositories
This commit is contained in:
@@ -19,8 +19,19 @@ class OrderElementRepository extends EntityRepository
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('id', $id);
|
||||
$feed = $query->getResult();
|
||||
|
||||
return $feed[0];
|
||||
return $query->getOneOrNullResult();
|
||||
}
|
||||
|
||||
public function findByUser(\Entities\Feed $feed, \User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\FeedPublisher f
|
||||
WHERE f.usr_id = :usrId AND f.feed = :feed';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('usrId', $user->get_id());
|
||||
$query->setParameter('feed', $feed);
|
||||
|
||||
return $query->getOneOrNullResult();
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace Repositories;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
/**
|
||||
@@ -39,15 +40,42 @@ class SessionRepository extends EntityRepository
|
||||
return $feeds;
|
||||
}
|
||||
|
||||
public function find($id)
|
||||
public function findAllPublic()
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\Feed f
|
||||
WHERE f.id = :id ';
|
||||
WHERE f.public = true
|
||||
ORDER BY f.created_on DESC';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('id', $id);
|
||||
$feed = $query->getResult();
|
||||
$feeds = $query->getResult();
|
||||
|
||||
return $feed[0];
|
||||
return $feeds;
|
||||
}
|
||||
|
||||
public function loadWithUser(Application $app, \User_Adapter $user, $id)
|
||||
{
|
||||
$feed = $this->find($id);
|
||||
if ($feed) {
|
||||
$coll = $feed->getCollection($app);
|
||||
if ($feed->getPublic()
|
||||
|| $coll === null
|
||||
|| in_array($coll->get_base_id(), array_keys($user->ACL()->get_granted_base()))) {
|
||||
return $feed;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function findByIdArray(array $feed_id)
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\Feed f
|
||||
ORDER BY f.created_on DESC
|
||||
WHERE f.id IN (' . implode(",", $feed_id) . ')';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$feeds = $query->getResult();
|
||||
|
||||
return $feeds;
|
||||
}
|
||||
}
|
||||
|
@@ -12,4 +12,44 @@ use Doctrine\ORM\EntityRepository;
|
||||
*/
|
||||
class UserSettingRepository extends EntityRepository
|
||||
{
|
||||
public function find($id)
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\FeedEntry f
|
||||
WHERE f.id = :id ';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('id', $id);
|
||||
|
||||
return $query->getOneOrNullResult();
|
||||
}
|
||||
|
||||
public function findByFeed($feed, $id)
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\FeedEntry f
|
||||
WHERE f.id = :id AND f.feed = :feed';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('id', $id);
|
||||
$query->setParameter('feed', $feed);
|
||||
|
||||
return $query->getOneOrNullResult();
|
||||
}
|
||||
|
||||
public function findByFeeds($feeds, $offset_start = null, $how_many = null)
|
||||
{
|
||||
$dql = 'SELECT f FROM Entities\FeedEntry f
|
||||
WHERE f.feed IN (:feeds)';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameter('feeds', $feeds);
|
||||
|
||||
if (null !== $offset_start) {
|
||||
$query->setFirstResult($offset_start);
|
||||
}
|
||||
if (null !== $how_many) {
|
||||
$query->setMaxResults($how_many);
|
||||
}
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user