From 11f09d9f08050e2053b12ca35cc00ac626d16603 Mon Sep 17 00:00:00 2001 From: Daniel Siepmann Date: Fri, 9 Feb 2024 09:25:03 +0100 Subject: [PATCH] Fix broken rss feed for specific category Ease the setup, no need for a where, use native uidInList instead. --- .../Frontend/RssFeed/BlogPostsDataProvider.php | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/Classes/Frontend/RssFeed/BlogPostsDataProvider.php b/Classes/Frontend/RssFeed/BlogPostsDataProvider.php index 3508509..56be372 100644 --- a/Classes/Frontend/RssFeed/BlogPostsDataProvider.php +++ b/Classes/Frontend/RssFeed/BlogPostsDataProvider.php @@ -48,7 +48,7 @@ final class BlogPostsDataProvider implements DataProcessorInterface $contentObjectRenderer, $contentObjectConfiguration, array_merge($processorConfiguration, [ - 'where' => 'AND no_index = 0' . $this->getAdditionalWhere($contentObjectRenderer->getRequest()), + 'uidInList' => $this->getPageUids($contentObjectRenderer->getRequest()), ]), $processedData ); @@ -64,21 +64,14 @@ final class BlogPostsDataProvider implements DataProcessorInterface return $processedData; } - private function getAdditionalWhere(ServerRequestInterface $request): string + private function getPageUids(ServerRequestInterface $request): string { $categoryUid = (int) ($request->getQueryParams()['category_uid'] ?? 0); if ($categoryUid === 0) { return ''; } - $pageUids = $this->getPageUidsWithRelationToCategory($categoryUid); - $where = $this->createAdditionalWhereForPageUids($pageUids); - - if ($where !== '') { - return ''; - } - - return ' ' . $where; + return implode(',', $this->getPageUidsWithRelationToCategory($categoryUid)); } private function getPageUidsWithRelationToCategory(int $categoryUid): array @@ -116,11 +109,6 @@ final class BlogPostsDataProvider implements DataProcessorInterface }, $queryBuilder->executeQuery()->fetchAllAssociative()); } - private function createAdditionalWhereForPageUids(array $pageUids): string - { - return ' AND uid IN(' . implode(',', $pageUids) . ')'; - } - private function getContent( ContentObjectRenderer $contentObjectRenderer, int $pageUid