|
|
@ -46,10 +46,10 @@ class SysAnnouncementRepository extends ServiceEntityRepository |
|
|
|
{ |
|
|
|
{ |
|
|
|
$qb = $this->createQueryBuilder('s'); |
|
|
|
$qb = $this->createQueryBuilder('s'); |
|
|
|
$qb |
|
|
|
$qb |
|
|
|
->andWhere(' s.lang IS NULL OR s.lang = :iso') |
|
|
|
->andWhere('s.lang IS NULL OR s.lang = :lang OR s.lang = :empty') |
|
|
|
->andWhere('s.url = :url') |
|
|
|
->andWhere('s.url = :url') |
|
|
|
->setParameters( |
|
|
|
->setParameters( |
|
|
|
['url' => $url, 'iso' => $iso] |
|
|
|
['url' => $url, 'lang' => $iso, 'empty' => ''] |
|
|
|
) |
|
|
|
) |
|
|
|
; |
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
@ -69,6 +69,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository |
|
|
|
$qb = $this->getAnnouncementsQueryBuilder($iso, $url, $user); |
|
|
|
$qb = $this->getAnnouncementsQueryBuilder($iso, $url, $user); |
|
|
|
|
|
|
|
|
|
|
|
$announcements = $qb->getQuery()->getResult(); |
|
|
|
$announcements = $qb->getQuery()->getResult(); |
|
|
|
|
|
|
|
|
|
|
|
$cutSize = 500; |
|
|
|
$cutSize = 500; |
|
|
|
$list = []; |
|
|
|
$list = []; |
|
|
|
if (!empty($announcements)) { |
|
|
|
if (!empty($announcements)) { |
|
|
@ -150,25 +151,30 @@ class SysAnnouncementRepository extends ServiceEntityRepository |
|
|
|
return $list; |
|
|
|
return $list; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function addRoleListQueryBuilder(array $roleList, QueryBuilder $qb = null): QueryBuilder |
|
|
|
public function addRoleListQueryBuilder(array $roles, QueryBuilder $qb = null): QueryBuilder |
|
|
|
{ |
|
|
|
{ |
|
|
|
$qb = $this->getOrCreateQueryBuilder($qb, 's'); |
|
|
|
$qb = $this->getOrCreateQueryBuilder($qb); |
|
|
|
if (!empty($roleList)) { |
|
|
|
|
|
|
|
$qb |
|
|
|
$conditions[] = $qb->expr()->like('s.roles', $qb->expr()->literal('%ROLE_ANONYMOUS%')); |
|
|
|
->andWhere('s.roles IN (:roles) OR s.roles IN (:anon)') |
|
|
|
|
|
|
|
->setParameter('roles', $roleList, Types::ARRAY) |
|
|
|
if (!empty($roles)) { |
|
|
|
->setParameter('anon', ['ROLE_ANONYMOUS'], Types::ARRAY) |
|
|
|
foreach ($roles as $role) { |
|
|
|
; |
|
|
|
$conditions[] = $qb->expr()->like('s.roles', $qb->expr()->literal('%'.$role.'%')); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$orX = $qb->expr()->orX(); |
|
|
|
|
|
|
|
$orX->addMultiple($conditions); |
|
|
|
|
|
|
|
$qb->andWhere($orX); |
|
|
|
|
|
|
|
|
|
|
|
return $qb; |
|
|
|
return $qb; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function addDateQueryBuilder(QueryBuilder $qb = null): QueryBuilder |
|
|
|
public function addDateQueryBuilder(QueryBuilder $qb = null): QueryBuilder |
|
|
|
{ |
|
|
|
{ |
|
|
|
$qb = $this->getOrCreateQueryBuilder($qb, 's'); |
|
|
|
$qb = $this->getOrCreateQueryBuilder($qb); |
|
|
|
$qb |
|
|
|
$qb |
|
|
|
->andWhere('s.dateStart IS NULL OR s.dateEnd > :now') |
|
|
|
->andWhere('s.dateStart <= :now AND s.dateEnd > :now') |
|
|
|
->setParameter('now', new Datetime(), Types::DATETIME_MUTABLE) |
|
|
|
->setParameter('now', new Datetime(), Types::DATETIME_MUTABLE) |
|
|
|
; |
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|