mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-18 19:51:28 +00:00
implement category browsing
This commit is contained in:
103
backend.php
103
backend.php
@@ -584,9 +584,14 @@
|
|||||||
$cat_id = sprintf("%d", $cat_id);
|
$cat_id = sprintf("%d", $cat_id);
|
||||||
|
|
||||||
print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
|
print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
|
||||||
<a href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category
|
<a href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a>
|
||||||
|
<a href=\"javascript:viewCategory($cat_id)\">
|
||||||
<span id=\"FCATCTR-$cat_id\"
|
<span id=\"FCATCTR-$cat_id\"
|
||||||
class=\"$catctr_class\">($cat_unread unread)$ellipsis</span></a></li>";
|
class=\"$catctr_class\">($cat_unread unread)$ellipsis</span></a>
|
||||||
|
<!-- <div style=\"float : right\">
|
||||||
|
<a href=\"javascript:viewCategory($cat_id)\">[view]</a>
|
||||||
|
</div> -->
|
||||||
|
</li>";
|
||||||
|
|
||||||
// !!! NO SPACE before <ul...feedCatList - breaks firstChild DOM function
|
// !!! NO SPACE before <ul...feedCatList - breaks firstChild DOM function
|
||||||
// -> keyboard navigation, etc.
|
// -> keyboard navigation, etc.
|
||||||
@@ -1054,6 +1059,7 @@
|
|||||||
$subop = $_GET["subop"];
|
$subop = $_GET["subop"];
|
||||||
$view_mode = $_GET["view"];
|
$view_mode = $_GET["view"];
|
||||||
$limit = $_GET["limit"];
|
$limit = $_GET["limit"];
|
||||||
|
$cat_view = $_GET["cat"];
|
||||||
|
|
||||||
if (!$feed) {
|
if (!$feed) {
|
||||||
return;
|
return;
|
||||||
@@ -1112,17 +1118,43 @@
|
|||||||
// fixme update_rss_feed...
|
// fixme update_rss_feed...
|
||||||
} */
|
} */
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
if ($cat_view) {
|
||||||
WHERE id = '$feed'");
|
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
||||||
$feed_url = db_fetch_result($tmp_result, 0, "feed_url");
|
WHERE cat_id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
|
||||||
|
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
||||||
|
$feed_url = $tmp_line["feed_url"];
|
||||||
|
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
|
||||||
|
WHERE id = '$feed'");
|
||||||
|
$feed_url = db_fetch_result($tmp_result, 0, "feed_url");
|
||||||
|
update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($subop == "MarkAllRead") {
|
if ($subop == "MarkAllRead") {
|
||||||
|
|
||||||
if (sprintf("%d", $feed) != 0) {
|
if (sprintf("%d", $feed) != 0) {
|
||||||
|
|
||||||
if ($feed > 0) {
|
if ($cat_view) {
|
||||||
|
|
||||||
|
$tmp_result = db_query($link, "SELECT id
|
||||||
|
FROM ttrss_feeds WHERE cat_id = '$feed' AND owner_uid = " .
|
||||||
|
$_SESSION["uid"]);
|
||||||
|
|
||||||
|
while ($tmp_line = db_fetch_assoc($tmp_result)) {
|
||||||
|
|
||||||
|
$tmp_feed = $tmp_line["id"];
|
||||||
|
|
||||||
|
db_query($link, "UPDATE ttrss_user_entries
|
||||||
|
SET unread = false,last_read = NOW()
|
||||||
|
WHERE feed_id = '$tmp_feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($feed > 0) {
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT id
|
$tmp_result = db_query($link, "SELECT id
|
||||||
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
||||||
@@ -1285,23 +1317,30 @@
|
|||||||
|
|
||||||
} else if ($feed >= 0) {
|
} else if ($feed >= 0) {
|
||||||
|
|
||||||
$tmp_result = db_query($link, "SELECT id
|
if ($cat_view) {
|
||||||
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
|
||||||
ORDER BY cat_id,title");
|
|
||||||
|
|
||||||
$parent_ids = array();
|
|
||||||
|
|
||||||
if (db_num_rows($tmp_result) > 0) {
|
|
||||||
while ($p = db_fetch_assoc($tmp_result)) {
|
|
||||||
array_push($parent_ids, "feed_id = " . $p["id"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$query_strategy_part = sprintf("(feed_id = %d OR %s)",
|
|
||||||
$feed, implode(" OR ", $parent_ids));
|
|
||||||
|
|
||||||
|
$query_strategy_part = "cat_id = $feed";
|
||||||
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
|
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$query_strategy_part = "feed_id = '$feed'";
|
$tmp_result = db_query($link, "SELECT id
|
||||||
|
FROM ttrss_feeds WHERE parent_feed = '$feed'
|
||||||
|
ORDER BY cat_id,title");
|
||||||
|
|
||||||
|
$parent_ids = array();
|
||||||
|
|
||||||
|
if (db_num_rows($tmp_result) > 0) {
|
||||||
|
while ($p = db_fetch_assoc($tmp_result)) {
|
||||||
|
array_push($parent_ids, "feed_id = " . $p["id"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$query_strategy_part = sprintf("(feed_id = %d OR %s)",
|
||||||
|
$feed, implode(" OR ", $parent_ids));
|
||||||
|
|
||||||
|
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
|
||||||
|
} else {
|
||||||
|
$query_strategy_part = "feed_id = '$feed'";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if ($feed == -1) { // starred virtual feed
|
} else if ($feed == -1) { // starred virtual feed
|
||||||
$query_strategy_part = "marked = true";
|
$query_strategy_part = "marked = true";
|
||||||
@@ -1332,12 +1371,24 @@
|
|||||||
} else if ($search && sprintf("%d", $feed) == 0) {
|
} else if ($search && sprintf("%d", $feed) == 0) {
|
||||||
$feed_title = "Feed search results ($search, $feed)";
|
$feed_title = "Feed search results ($search, $feed)";
|
||||||
} else if ($feed > 0) {
|
} else if ($feed > 0) {
|
||||||
$result = db_query($link, "SELECT title,site_url,last_error FROM ttrss_feeds
|
|
||||||
WHERE id = '$feed'");
|
|
||||||
|
|
||||||
$feed_title = db_fetch_result($result, 0, "title");
|
if ($cat_view) {
|
||||||
$feed_site_url = db_fetch_result($result, 0, "site_url");
|
|
||||||
$last_error = db_fetch_result($result, 0, "last_error");
|
$result = db_query($link, "SELECT title FROM ttrss_feed_categories
|
||||||
|
WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
$feed_title = db_fetch_result($result, 0, "title");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$result = db_query($link, "SELECT title,site_url,last_error FROM ttrss_feeds
|
||||||
|
WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
$feed_title = db_fetch_result($result, 0, "title");
|
||||||
|
$feed_site_url = db_fetch_result($result, 0, "site_url");
|
||||||
|
$last_error = db_fetch_result($result, 0, "last_error");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
} else if ($feed == -1) {
|
} else if ($feed == -1) {
|
||||||
$feed_title = "Starred articles";
|
$feed_title = "Starred articles";
|
||||||
|
|||||||
25
feedlist.js
25
feedlist.js
@@ -1,5 +1,7 @@
|
|||||||
var xmlhttp = false;
|
var xmlhttp = false;
|
||||||
|
|
||||||
|
var cat_view_mode = false;
|
||||||
|
|
||||||
/*@cc_on @*/
|
/*@cc_on @*/
|
||||||
/*@if (@_jscript_version >= 5)
|
/*@if (@_jscript_version >= 5)
|
||||||
// JScript gives us Conditional compilation, we can cope with old IE versions.
|
// JScript gives us Conditional compilation, we can cope with old IE versions.
|
||||||
@@ -22,7 +24,11 @@ if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
|
|||||||
xmlhttp_rpc = new XMLHttpRequest();
|
xmlhttp_rpc = new XMLHttpRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
function viewfeed(feed, skip, subop, doc) {
|
function viewCategory(cat) {
|
||||||
|
viewfeed(cat, 0, '', false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function viewfeed(feed, skip, subop, doc, is_cat) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (!doc) doc = parent.document;
|
if (!doc) doc = parent.document;
|
||||||
@@ -74,6 +80,10 @@ function viewfeed(feed, skip, subop, doc) {
|
|||||||
|
|
||||||
// document.getElementById("ACTFEEDID").innerHTML = feed;
|
// document.getElementById("ACTFEEDID").innerHTML = feed;
|
||||||
|
|
||||||
|
if (getActiveFeedId() != feed) {
|
||||||
|
cat_view_mode = is_cat;
|
||||||
|
}
|
||||||
|
|
||||||
setActiveFeedId(feed);
|
setActiveFeedId(feed);
|
||||||
|
|
||||||
if (subop == "MarkAllRead") {
|
if (subop == "MarkAllRead") {
|
||||||
@@ -81,10 +91,13 @@ function viewfeed(feed, skip, subop, doc) {
|
|||||||
var feedr = document.getElementById("FEEDR-" + feed);
|
var feedr = document.getElementById("FEEDR-" + feed);
|
||||||
var feedctr = document.getElementById("FEEDCTR-" + feed);
|
var feedctr = document.getElementById("FEEDCTR-" + feed);
|
||||||
|
|
||||||
feedctr.className = "invisible";
|
if (feedr && feedctr) {
|
||||||
|
|
||||||
if (feedr.className.match("Unread")) {
|
feedctr.className = "invisible";
|
||||||
feedr.className = feedr.className.replace("Unread", "");
|
|
||||||
|
if (feedr.className.match("Unread")) {
|
||||||
|
feedr.className = feedr.className.replace("Unread", "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,6 +111,10 @@ function viewfeed(feed, skip, subop, doc) {
|
|||||||
searchbox.value = "";
|
searchbox.value = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cat_view_mode) {
|
||||||
|
query = query + "&cat=1";
|
||||||
|
}
|
||||||
|
|
||||||
var headlines_frame = parent.frames["headlines-frame"];
|
var headlines_frame = parent.frames["headlines-frame"];
|
||||||
|
|
||||||
// alert(headlines_frame)
|
// alert(headlines_frame)
|
||||||
|
|||||||
Reference in New Issue
Block a user