diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-07-30 20:23:50 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-07-30 20:23:50 +0300 |
| commit | 851ddf4bbe750e30816b6c494165e9860bd39b92 (patch) | |
| tree | 963958f3a68903e8fe33824219a6f93bfe9523df /classes/Feeds.php | |
| parent | 8b07dc8453e0d029b000d8a73ebc059f95994400 (diff) | |
| parent | c7aa33fe8aa0cf29bbe453efa74898254834a8eb (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.php | 25 |
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"]; |