summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--functions.php29
1 files changed, 25 insertions, 4 deletions
diff --git a/functions.php b/functions.php
index 398540dfa..c7bf4eaa3 100644
--- a/functions.php
+++ b/functions.php
@@ -3251,8 +3251,15 @@
if ($match_on == "both") {
foreach ($keywords as $k) {
- array_push($query_keywords, "(UPPER(ttrss_entries.title) LIKE UPPER('%$k%')
- OR UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))");
+ if (strpos($k, "-") === 0) {
+ $k = substr($k, 1);
+ $not = "NOT";
+ } else {
+ $not = "";
+ }
+
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
+ OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
}
$search_query_part = implode("AND", $query_keywords) . " AND ";
@@ -3260,7 +3267,14 @@
} else if ($match_on == "title") {
foreach ($keywords as $k) {
- array_push($query_keywords, "(UPPER(ttrss_entries.title) LIKE UPPER('%$k%'))");
+ if (strpos($k, "-") === 0) {
+ $k = substr($k, 1);
+ $not = "NOT";
+ } else {
+ $not = "";
+ }
+
+ array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%'))");
}
$search_query_part = implode("AND", $query_keywords) . " AND ";
@@ -3268,7 +3282,14 @@
} else if ($match_on == "content") {
foreach ($keywords as $k) {
- array_push($query_keywords, "(UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))");
+ if (strpos($k, "-") === 0) {
+ $k = substr($k, 1);
+ $not = "NOT";
+ } else {
+ $not = "";
+ }
+
+ array_push($query_keywords, "(UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
}
}