summaryrefslogtreecommitdiff
path: root/classes/feeds.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-04-04 14:34:08 +0300
committerAndrew Dolgov <[email protected]>2020-04-04 14:34:08 +0300
commit44b1f0fcc0a0497b8fa0895b8655f4f1b9396ace (patch)
tree92949b86c2c67178957d8eac0bcdd14b29723e09 /classes/feeds.php
parent586ed55178591948734d54eae293d7d612552b0f (diff)
search: add support for label:XXX search keyword
Labels: enforce case-insensitive lookups when creating/looking for labels
Diffstat (limited to 'classes/feeds.php')
-rwxr-xr-xclasses/feeds.php23
1 files changed, 22 insertions, 1 deletions
diff --git a/classes/feeds.php b/classes/feeds.php
index 77add790e..bd2334747 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -2267,6 +2267,24 @@ class Feeds extends Handler_Protected {
if (!$not) array_push($search_words, $k);
}
break;
+ case "label":
+ if ($commandpair[1]) {
+ $label_id = Labels::find_id($commandpair[1], $_SESSION["uid"]);
+
+ if ($label_id) {
+ array_push($query_keywords, "($not
+ (ttrss_entries.id IN (
+ SELECT article_id FROM ttrss_user_labels2 WHERE
+ label_id = ".$pdo->quote($label_id).")))");
+ } else {
+ array_push($query_keywords, "(false)");
+ }
+ } else {
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").")
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))");
+ if (!$not) array_push($search_words, $k);
+ }
+ break;
case "unread":
if ($commandpair[1]) {
if ($commandpair[1] == "true")
@@ -2323,7 +2341,10 @@ class Feeds extends Handler_Protected {
}
- $search_query_part = implode("AND", $query_keywords);
+ if (count($query_keywords) > 0)
+ $search_query_part = implode("AND", $query_keywords);
+ else
+ $search_query_part = "false";
return array($search_query_part, $search_words);
}