prefs: rudimentary multiple keyword search

This commit is contained in:
Andrew Dolgov 2009-10-07 15:12:21 +04:00
parent 4b67e71e7d
commit 1638fc4e13
4 changed files with 56 additions and 12 deletions

View File

@ -1184,9 +1184,21 @@
$_SESSION["pref_sort_feeds"] = $feeds_sort;
if ($feed_search) {
$search_qpart = "(UPPER(F1.title) LIKE UPPER('%$feed_search%') OR
UPPER(C1.title) LIKE UPPER('%$feed_search%') OR
UPPER(F1.feed_url) LIKE UPPER('%$feed_search%')) AND";
$feed_search = split(" ", $feed_search);
$tokens = array();
foreach ($feed_search as $token) {
$token = trim($token);
array_push($tokens, "(UPPER(F1.title) LIKE UPPER('%$token%') OR
UPPER(C1.title) LIKE UPPER('%$token%') OR
UPPER(F1.feed_url) LIKE UPPER('%$token%'))");
}
$search_qpart = "(" . join($tokens, " AND ") . ") AND ";
} else {
$search_qpart = "";
}

View File

@ -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 = "";
}

View File

@ -138,7 +138,19 @@
value=\"".__('Create label')."\"></div>";
if ($label_search) {
$label_search_query = "caption LIKE '%$label_search%' AND";
$label_search = split(" ", $label_search);
$tokens = array();
foreach ($label_search as $token) {
$token = trim($token);
array_push($tokens, "(UPPER(caption) LIKE UPPER('%$token%'))");
}
$label_search_query = "(" . join($tokens, " AND ") . ") AND ";
} else {
$label_search_query = "";
}

View File

@ -374,7 +374,17 @@
onclick=\"javascript:addUser()\" value=\"".__('Create user')."\"></div>";
if ($user_search) {
$user_search_query = "UPPER(login) LIKE UPPER('%$user_search%') AND";
$user_search = split(" ", $user_search);
$tokens = array();
foreach ($user_search as $token) {
$token = trim($token);
array_push($tokens, "(UPPER(login) LIKE UPPER('%$token%'))");
}
$user_search_query = "(" . join($tokens, " AND ") . ") AND ";
} else {
$user_search_query = "";
}