Skip to content
Snippets Groups Projects
Commit 551b984b authored by Kevin Ditscheid's avatar Kevin Ditscheid
Browse files

[BUGFIX] Fix fetching of next and previous news

parent 6b59757c
No related branches found
No related tags found
No related merge requests found
...@@ -371,21 +371,29 @@ class NewsRepository extends AbstractRepository { ...@@ -371,21 +371,29 @@ class NewsRepository extends AbstractRepository {
* @return QueryResult * @return QueryResult
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
*/ */
public function findNextNewsEntryFromCurrentNews(News $news, $sortBy = 'date'): QueryResult { public function findNextNewsEntryFromCurrentNews(News $news, $sortBy = 'date'): QueryResultInterface {
$query = $this->createQuery(); $query = $this->createQuery();
$orderBy = 'ORDER BY sorting ASC, lastUpdated DESC, crdate DESC'; $query->getQuerySettings()->setRespectStoragePage(TRUE);
$query->getQuerySettings()->setStoragePageIds([$news->getPid()]);
if ($sortBy === 'date') { if ($sortBy === 'date') {
$orderBy = 'ORDER BY lastUpdated DESC, crdate DESC'; $query->setOrderings([
} 'lastUpdated' => QueryInterface::ORDER_DESCENDING,
'crdate' => QueryInterface::ORDER_DESCENDING
$statement = 'SELECT * FROM pages WHERE uid = ]);
(SELECT MIN(uid) FROM pages WHERE pid = ' . $news->getPid() . ' AND uid > ' . $news->getUid() . return $query->matching(
$this->getEnableFieldsStatement('pages') . ' ' . $orderBy . ')' . $query->lessThan('lastUpdated', $news->getLastUpdated())
$this->getEnableFieldsStatement('pages'); )->execute();
}
/** @noinspection PhpUndefinedMethodInspection */
return $query->statement($statement)->execute(); $query->setOrderings([
'sorting' => QueryInterface::ORDER_ASCENDING,
'lastUpdated' => QueryInterface::ORDER_DESCENDING,
'crdate' => QueryInterface::ORDER_DESCENDING
]);
return $query->matching(
$query->lessThan('sorting', $news->getSorting())
)->execute();
} }
/** /**
...@@ -396,21 +404,29 @@ class NewsRepository extends AbstractRepository { ...@@ -396,21 +404,29 @@ class NewsRepository extends AbstractRepository {
* @return QueryResult * @return QueryResult
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
*/ */
public function findPreviousNewsEntryFromCurrentNews(News $news, $sortBy = 'date'): QueryResult { public function findPreviousNewsEntryFromCurrentNews(News $news, $sortBy = 'date'): QueryResultInterface {
$query = $this->createQuery(); $query = $this->createQuery();
$orderBy = 'ORDER BY sorting ASC, lastUpdated DESC, crdate DESC'; $query->getQuerySettings()->setRespectStoragePage(TRUE);
$query->getQuerySettings()->setStoragePageIds([$news->getPid()]);
if ($sortBy === 'date') { if ($sortBy === 'date') {
$orderBy = 'ORDER BY lastUpdated DESC, crdate DESC'; $query->setOrderings([
} 'lastUpdated' => QueryInterface::ORDER_ASCENDING,
'crdate' => QueryInterface::ORDER_ASCENDING
$statement = 'SELECT * FROM pages WHERE uid = ]);
(SELECT MAX(uid) FROM pages WHERE pid = ' . $news->getPid() . ' AND uid < ' . $news->getUid() . return $query->matching(
$this->getEnableFieldsStatement('pages') . ' ' . $orderBy . ')' . $query->greaterThan('lastUpdated', $news->getLastUpdated())
$this->getEnableFieldsStatement('pages'); )->execute();
}
/** @noinspection PhpUndefinedMethodInspection */
return $query->statement($statement)->execute(); $query->setOrderings([
'sorting' => QueryInterface::ORDER_DESCENDING,
'lastUpdated' => QueryInterface::ORDER_ASCENDING,
'crdate' => QueryInterface::ORDER_ASCENDING
]);
return $query->matching(
$query->greaterThan('sorting', $news->getSorting())
)->execute();
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment