aboutsummaryrefslogtreecommitdiff
path: root/classes/Feeds.php
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-07-30 20:23:50 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-07-30 20:23:50 +0300
commit851ddf4bbe750e30816b6c494165e9860bd39b92 (patch)
tree963958f3a68903e8fe33824219a6f93bfe9523df /classes/Feeds.php
parent8b07dc8453e0d029b000d8a73ebc059f95994400 (diff)
parentc7aa33fe8aa0cf29bbe453efa74898254834a8eb (diff)
Merge branch 'publishedcounter' into 'master'
implement special counter display when viewing by published, similar to marked See merge request tt-rss/tt-rss!168
Diffstat (limited to 'classes/Feeds.php')
-rw-r--r--classes/Feeds.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/classes/Feeds.php b/classes/Feeds.php
index e76044060..7781d748f 100644
--- a/classes/Feeds.php
+++ b/classes/Feeds.php
@@ -1248,6 +1248,31 @@ class Feeds extends Handler_Protected {
return 0;
}
+ // only real cats
+ static function _get_cat_published(int $cat, int $owner_uid = 0): int {
+
+ if (!$owner_uid) $owner_uid = $_SESSION["uid"];
+
+ $pdo = Db::pdo();
+
+ if ($cat >= 0) {
+
+ $sth = $pdo->prepare("SELECT SUM(CASE WHEN published THEN 1 ELSE 0 END) AS marked
+ FROM ttrss_user_entries
+ WHERE feed_id IN (SELECT id FROM ttrss_feeds
+ WHERE (cat_id = :cat OR (:cat IS NULL AND cat_id IS NULL))
+ AND owner_uid = :uid)
+ AND owner_uid = :uid");
+
+ $sth->execute(["cat" => $cat ? $cat : null, "uid" => $owner_uid]);
+
+ if ($row = $sth->fetch()) {
+ return (int) $row["marked"];
+ }
+ }
+ return 0;
+ }
+
static function _get_cat_unread(int $cat, int $owner_uid = 0): int {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];