diff options
author | Andrew Dolgov <[email protected]> | 2006-08-01 05:13:48 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2006-08-01 05:13:48 +0100 |
commit | 0a6c4846cd819d8d0f50e184a45569e70e22ec4d (patch) | |
tree | 977ccfa438d2704ce351f1a4075632b322c8ea8f | |
parent | 59e2aab4687694d6e64d56e8751a1d1eff3fd609 (diff) |
category search fixes, search dialog now searches in category view
-rw-r--r-- | backend.php | 24 | ||||
-rw-r--r-- | feedlist.js | 4 | ||||
-rw-r--r-- | functions.js | 4 | ||||
-rw-r--r-- | functions.php | 33 | ||||
-rw-r--r-- | tt-rss.js | 3 |
5 files changed, 54 insertions, 14 deletions
diff --git a/backend.php b/backend.php index bd53354f2..6f4c932fb 100644 --- a/backend.php +++ b/backend.php @@ -2537,7 +2537,12 @@ print "<form id='search_form'>"; - $active_feed_id = db_escape_string($_GET["param"]); + #$active_feed_id = db_escape_string($_GET["param"]); + + $params = split(":", db_escape_string($_GET["param"])); + + $active_feed_id = $params[0]; + $is_cat = $params[1] == "true"; print "<table width='100%'><tr><td>Search:</td><td>"; @@ -2553,16 +2558,25 @@ <option value=\"all_feeds\">All feeds</option>"; $feed_title = getFeedTitle($link, $active_feed_id); - $feed_cat_title = getFeedCatTitle($link, $active_feed_id); + + if (!$is_cat) { + $feed_cat_title = getFeedCatTitle($link, $active_feed_id); + } else { + $feed_cat_title = getCategoryTitle($link, $active_feed_id); + } - if ($active_feed_id) { + if ($active_feed_id && !$is_cat) { print "<option selected value=\"this_feed\">This feed ($feed_title)</option>"; } else { print "<option disabled>This feed</option>"; } - if (get_pref($link, 'ENABLE_FEED_CATS') && $active_feed_id && $active_feed_id > 0) { - print "<option value=\"this_cat\">This category ($feed_cat_title)</option>"; + if ($is_cat) { + $cat_preselected = "selected"; + } + + if (get_pref($link, 'ENABLE_FEED_CATS') && $active_feed_id >= 0) { + print "<option $cat_preselected value=\"this_cat\">This category ($feed_cat_title)</option>"; } else { print "<option disabled>This category</option>"; } diff --git a/feedlist.js b/feedlist.js index 97d74ba2b..dd00c4da9 100644 --- a/feedlist.js +++ b/feedlist.js @@ -12,7 +12,7 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) { if (!doc) doc = parent.document; enableHotkeys(); - + var toolbar_query = parent.Form.serialize("main_toolbar_form"); var toolbar_form = parent.document.forms["main_toolbar_form"]; @@ -55,6 +55,8 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) { setActiveFeedId(feed); + getMainContext().active_feed_is_cat = is_cat; + if (subop == "MarkAllRead") { var feedr = document.getElementById("FEEDR-" + feed); diff --git a/functions.js b/functions.js index 853f36e19..64fac6135 100644 --- a/functions.js +++ b/functions.js @@ -462,6 +462,10 @@ function getActiveFeedId() { } } +function activeFeedIsCat() { + return getMainContext().active_feed_is_cat; +} + function setActiveFeedId(id) { // return setCookie("ttrss_vf_actfeed", id); try { diff --git a/functions.php b/functions.php index a58613ccb..65b374e1b 100644 --- a/functions.php +++ b/functions.php @@ -1972,7 +1972,7 @@ OR UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))"); } - $search_query_part = implode("AND", $query_keywords) . "AND"; + $search_query_part = implode("AND", $query_keywords) . " AND "; } else if ($match_on == "title") { @@ -1980,7 +1980,7 @@ array_push($query_keywords, "(UPPER(ttrss_entries.title) LIKE UPPER('%$k%'))"); } - $search_query_part = implode("AND", $query_keywords) . "AND"; + $search_query_part = implode("AND", $query_keywords) . " AND "; } else if ($match_on == "content") { @@ -1988,7 +1988,7 @@ array_push($query_keywords, "(UPPER(ttrss_entries.content) LIKE UPPER('%$k%'))"); } - $search_query_part = implode("AND", $query_keywords) . "AND"; + $search_query_part = implode("AND", $query_keywords) . " AND "; } } else { $search_query_part = ""; @@ -2032,10 +2032,17 @@ } else if ($feed >= 0 && $search && $search_mode == "this_cat") { $vfeed_query_part = "ttrss_feeds.title AS feed_title,"; - - $tmp_result = db_query($link, "SELECT id - FROM ttrss_feeds WHERE cat_id = - (SELECT cat_id FROM ttrss_feeds WHERE id = '$feed') AND id != '$feed'"); + + $tmp_result = false; + + if ($cat_view) { + $tmp_result = db_query($link, "SELECT id + FROM ttrss_feeds WHERE cat_id = '$feed'"); + } else { + $tmp_result = db_query($link, "SELECT id + FROM ttrss_feeds WHERE cat_id = (SELECT cat_id FROM ttrss_feeds + WHERE id = '$feed') AND id != '$feed'"); + } $cat_siblings = array(); @@ -2255,4 +2262,16 @@ } + function getCategoryTitle($link, $cat_id) { + + $result = db_query($link, "SELECT title FROM ttrss_feed_categories WHERE + id = '$cat_id'"); + + if (db_num_rows($result) == 1) { + return db_fetch_result($result, 0, "title"); + } else { + return "Uncategorized"; + } + } + ?> @@ -12,6 +12,7 @@ var firsttime_update = true; var last_refetch = 0; var cookie_lifetime = 0; var active_feed_id = 0; +var active_feed_is_cat = false; var xmlhttp = Ajax.getTransport(); @@ -433,7 +434,7 @@ function quickMenuGo(opid) { } if (opid == "qmcSearch") { - displayDlg("search", getActiveFeedId()); + displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat()); return; } |