aboutsummaryrefslogtreecommitdiff
path: root/classes/Feeds.php
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-07-30 19:24:53 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-07-30 19:24:53 +0300
commitbc312b1205612f5bd124bd6bf9f173a9b6d98792 (patch)
tree3ee93d7e0a6304d28b0795623fba614d571c1f86 /classes/Feeds.php
parent8b07dc8453e0d029b000d8a73ebc059f95994400 (diff)
implement special counter display when viewing by published, similar to marked
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"];