diff options
author | Andrew Dolgov <[email protected]> | 2006-07-21 10:50:21 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2006-07-21 10:50:21 +0100 |
commit | f295c368703ef93b9e55d8c6dbc220b40db1e566 (patch) | |
tree | 5e375565d32a8416a0331e8e5df6e33f9c3bb8e0 | |
parent | fce2483891be61631f7941e577f4ecd9f2d2bc0e (diff) |
fix Adaptive view behaviour in category view mode (closes #94)
-rw-r--r-- | functions.php | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/functions.php b/functions.php index 0f679e964..9bd505d5b 100644 --- a/functions.php +++ b/functions.php @@ -1399,10 +1399,39 @@ } } - function getFeedUnread($link, $feed) { + function getCategoryUnread($link, $cat) { + + $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE cat_id = '$cat' + AND owner_uid = " . $_SESSION["uid"]); + + $cat_feeds = array(); + while ($line = db_fetch_assoc($result)) { + array_push($cat_feeds, "feed_id = " . $line["id"]); + } + + $match_part = implode(" OR ", $cat_feeds); + + $result = db_query($link, "SELECT COUNT(int_id) AS unread + FROM ttrss_user_entries + WHERE unread = true AND $match_part AND owner_uid = " . $_SESSION["uid"]); + + $unread = 0; + + # this needs to be rewritten + while ($line = db_fetch_assoc($result)) { + $unread += $line["unread"]; + } + + return $unread; + + } + + function getFeedUnread($link, $feed, $is_cat = false) { $n_feed = sprintf("%d", $feed); - - if ($n_feed == -1) { + + if ($is_cat) { + return getCategoryUnread($link, $feed); + } else if ($n_feed == -1) { $match_part = "marked = true"; } else if ($feed > 0) { $match_part = "feed_id = '$n_feed'"; @@ -1886,7 +1915,7 @@ if ($search) { $view_query_part = " "; } else if ($feed != -1) { - $unread = getFeedUnread($link, $feed); + $unread = getFeedUnread($link, $feed, $cat_view); if ($unread > 0) { $view_query_part = " unread = true AND "; } |