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:
@@ -16,11 +16,22 @@ class OrderElementRepository extends EntityRepository
|
|||||||
{
|
{
|
||||||
$dql = 'SELECT f FROM Entities\FeedPublisher f
|
$dql = 'SELECT f FROM Entities\FeedPublisher f
|
||||||
WHERE f.id = :id ';
|
WHERE f.id = :id ';
|
||||||
|
|
||||||
$query = $this->_em->createQuery($dql);
|
$query = $this->_em->createQuery($dql);
|
||||||
$query->setParameter('id', $id);
|
$query->setParameter('id', $id);
|
||||||
$feed = $query->getResult();
|
|
||||||
|
return $query->getOneOrNullResult();
|
||||||
return $feed[0];
|
}
|
||||||
|
|
||||||
|
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;
|
namespace Repositories;
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\Application;
|
||||||
use Doctrine\ORM\EntityRepository;
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -12,7 +13,7 @@ use Doctrine\ORM\EntityRepository;
|
|||||||
*/
|
*/
|
||||||
class SessionRepository extends EntityRepository
|
class SessionRepository extends EntityRepository
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param User_Adapter $user
|
* @param User_Adapter $user
|
||||||
@@ -35,19 +36,46 @@ class SessionRepository extends EntityRepository
|
|||||||
|
|
||||||
$query = $this->_em->createQuery($dql);
|
$query = $this->_em->createQuery($dql);
|
||||||
$feeds = $query->getResult();
|
$feeds = $query->getResult();
|
||||||
|
|
||||||
return $feeds;
|
return $feeds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function find($id)
|
public function findAllPublic()
|
||||||
{
|
{
|
||||||
$dql = 'SELECT f FROM Entities\Feed f
|
$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 = $this->_em->createQuery($dql);
|
||||||
$query->setParameter('id', $id);
|
$feeds = $query->getResult();
|
||||||
$feed = $query->getResult();
|
|
||||||
|
return $feeds;
|
||||||
return $feed[0];
|
}
|
||||||
|
|
||||||
|
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
|
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