summaryrefslogtreecommitdiff
path: root/modules/pref-filters.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-10-07 15:12:21 +0400
committerAndrew Dolgov <[email protected]>2009-10-07 15:12:21 +0400
commit1638fc4e13e1d71eceb1deefe983c7f48d47b8a1 (patch)
tree1c4910786308b17c713c61d2e49c6570e25d767d /modules/pref-filters.php
parent4b67e71e7d30fc61160a734815a759f6ff7f3060 (diff)
prefs: rudimentary multiple keyword search
Diffstat (limited to 'modules/pref-filters.php')
-rw-r--r--modules/pref-filters.php24
1 files changed, 17 insertions, 7 deletions
diff --git a/modules/pref-filters.php b/modules/pref-filters.php
index 9e3e100f1..238ceb151 100644
--- a/modules/pref-filters.php
+++ b/modules/pref-filters.php
@@ -324,13 +324,23 @@
value=\"".__('Rescore articles')."\">";
if ($filter_search) {
- $filter_search = db_escape_string($filter_search);
- $filter_search_query = "(
- UPPER(ttrss_filter_actions.description) LIKE UPPER('%$filter_search%') OR
- UPPER(reg_exp) LIKE UPPER('%$filter_search%') OR
- UPPER(action_param) LIKE UPPER('%$filter_search%') OR
- UPPER(ttrss_feeds.title) LIKE UPPER('%$filter_search%') OR
- UPPER(ttrss_filter_types.description) LIKE UPPER('%$filter_search%')) AND";
+ $filter_search = split(' ', db_escape_string($filter_search));
+
+ $tokens = array();
+
+ foreach ($filter_search as $token) {
+ $token = trim($token);
+
+ array_push($tokens, "(
+ UPPER(ttrss_filter_actions.description) LIKE UPPER('%$token%') OR
+ UPPER(reg_exp) LIKE UPPER('%$token%') OR
+ UPPER(action_param) LIKE UPPER('%$token%') OR
+ UPPER(ttrss_feeds.title) LIKE UPPER('%$token%') OR
+ UPPER(ttrss_filter_types.description) LIKE UPPER('%$token%'))");
+ }
+
+ $filter_search_query = "(" . join($tokens, " AND ") . ") AND ";
+
} else {
$filter_search_query = "";
}