diff options
Diffstat (limited to 'functions.php')
-rw-r--r-- | functions.php | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/functions.php b/functions.php index ea1cb7110..885505c92 100644 --- a/functions.php +++ b/functions.php @@ -676,8 +676,13 @@ num_comments = '$num_comments' WHERE id = '$ref_id'"); - db_query($link, "UPDATE ttrss_user_entries - SET last_read = null WHERE ref_id = '$ref_id' AND unread = false"); + if (get_pref($link, "MARK_UNREAD_ON_UPDATE")) { + db_query($link, "UPDATE ttrss_user_entries + SET last_read = null, unread = true WHERE ref_id = '$ref_id'"); + } else { + db_query($link, "UPDATE ttrss_user_entries + SET last_read = null WHERE ref_id = '$ref_id' AND unread = false"); + } } } @@ -1413,7 +1418,7 @@ $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"]); + WHERE unread = true AND ($match_part) AND owner_uid = " . $_SESSION["uid"]); $unread = 0; @@ -1433,11 +1438,13 @@ return getCategoryUnread($link, $n_feed); } else if ($n_feed == -1) { $match_part = "marked = true"; - } else if ($feed > 0) { + } else if ($n_feed > 0) { - $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE parent_feed = '$n_feed'"); + $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE parent_feed = '$n_feed' + AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($result) > 0) { + $linked_feeds = array(); while ($line = db_fetch_assoc($result)) { array_push($linked_feeds, "feed_id = " . $line["id"]); @@ -1445,6 +1452,19 @@ $match_part = implode(" OR ", $linked_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; + } else { $match_part = "feed_id = '$n_feed'"; } |