From: Andrew Dolgov Date: Mon, 18 Jan 2010 13:03:45 +0000 (+0300) Subject: getSearchSql: support excluding keywords with - X-Git-Tag: 1.4.0~14 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=eb6c7f4240b772314e99fd8e81ea90be3412d417;p=tt-rss.git getSearchSql: support excluding keywords with - --- diff --git a/functions.php b/functions.php index 398540df..c7bf4eaa 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%'))"); } }