From ae70374b0323dc26f560b28414d2d270c06ddd50 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 17 Apr 2020 10:57:35 +0200 Subject: Filter by multiple feed IDs (#2892) Add the possibility to filter by feed ID like `f:123 more-search` or multiple feed IDs, like `f:123,234,345 more-search` or an exclusion like `!f:456,789 more-search` --- app/Models/EntryDAO.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'app/Models/EntryDAO.php') diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index 1cca5cd75..9ee59fc5a 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -703,6 +703,26 @@ SQL; continue; } $sub_search = ''; + + if ($filter->getFeedIds()) { + $sub_search .= 'AND ' . $alias . 'id_feed IN ('; + foreach ($filter->getFeedIds() as $feed_id) { + $sub_search .= '?,'; + $values[] = $feed_id; + } + $sub_search = rtrim($sub_search, ','); + $sub_search .= ') '; + } + if ($filter->getNotFeedIds()) { + $sub_search .= 'AND ' . $alias . 'id_feed NOT IN ('; + foreach ($filter->getNotFeedIds() as $feed_id) { + $sub_search .= '?,'; + $values[] = $feed_id; + } + $sub_search = rtrim($sub_search, ','); + $sub_search .= ') '; + } + if ($filter->getMinDate()) { $sub_search .= 'AND ' . $alias . 'id >= ? '; $values[] = "{$filter->getMinDate()}000000"; -- cgit v1.2.3