Spaces:
No application file
No application file
File size: 1,564 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php
namespace MauticPlugin\MauticSocialBundle\Entity;
use Mautic\CoreBundle\Entity\CommonRepository;
/**
* @extends CommonRepository<Tweet>
*/
class TweetRepository extends CommonRepository
{
/**
* @param string $search
* @param int $limit
* @param int $start
* @param bool $viewOther
*
* @return array
*/
public function getTweetList($search = '', $limit = 10, $start = 0, $viewOther = false, array $ignoreIds = [])
{
$qb = $this->createQueryBuilder('t');
$qb->select('partial t.{id, text, name, language}');
if (!empty($search)) {
if (is_array($search)) {
$search = array_map('intval', $search);
$qb->andWhere($qb->expr()->in('t.id', ':search'))
->setParameter('search', $search);
} else {
$qb->andWhere($qb->expr()->like('t.name', ':search'))
->setParameter('search', "%{$search}%");
}
}
if (!$viewOther) {
$qb->andWhere($qb->expr()->eq('t.createdBy', ':id'))
->setParameter('id', $this->currentUser->getId());
}
if (!empty($ignoreIds)) {
$qb->andWhere($qb->expr()->notIn('t.id', ':ignoreIds'))
->setParameter('ignoreIds', $ignoreIds);
}
$qb->orderBy('t.name');
if (!empty($limit)) {
$qb->setFirstResult($start)
->setMaxResults($limit);
}
return $qb->getQuery()->getArrayResult();
}
}
|