summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-12-03 21:34:57 +0300
committerAndrew Dolgov <[email protected]>2017-12-03 21:34:57 +0300
commit229c139c6a71230ac2a6e3faffbaf04a000bd5e5 (patch)
tree0bd0a427092a01182078cb20159e595ccc2c5f07 /classes
parent342e8a9eeb6361e8b87be523cd90bbcd036dfa88 (diff)
ccache: properly recalculate counters for uncategorized
Diffstat (limited to 'classes')
-rw-r--r--classes/ccache.php20
1 files changed, 16 insertions, 4 deletions
diff --git a/classes/ccache.php b/classes/ccache.php
index 88e28e9e8..87c14e78e 100644
--- a/classes/ccache.php
+++ b/classes/ccache.php
@@ -14,6 +14,8 @@ class CCache {
static function remove($feed_id, $owner_uid, $is_cat = false) {
+ $feed_id = (int) $feed_id;
+
if (!$is_cat) {
$table = "ttrss_counters_cache";
} else {
@@ -62,7 +64,12 @@ class CCache {
static function find($feed_id, $owner_uid, $is_cat = false,
$no_update = false) {
- if (!is_numeric($feed_id)) return;
+ // "" (null) is valid and should be cast to 0 (uncategorized)
+ // everything else i.e. tags are not
+ if (!is_numeric($feed_id) && $feed_id)
+ return;
+
+ $feed_id = (int) $feed_id;
if (!$is_cat) {
$table = "ttrss_counters_cache";
@@ -93,7 +100,12 @@ class CCache {
static function update($feed_id, $owner_uid, $is_cat = false,
$update_pcat = true, $pcat_fast = false) {
- if (!is_numeric($feed_id)) return;
+ // "" (null) is valid and should be cast to 0 (uncategorized)
+ // everything else i.e. tags are not
+ if (!is_numeric($feed_id) && $feed_id)
+ return;
+
+ $feed_id = (int) $feed_id;
$prev_unread = CCache::find($feed_id, $owner_uid, $is_cat, true);
@@ -123,7 +135,7 @@ class CCache {
$sth->execute([":uid" => $owner_uid, ":cat" => $feed_id]);
while ($line = $sth->fetch()) {
- CCache::update($line["id"], $owner_uid, false, false);
+ CCache::update((int)$line["id"], $owner_uid, false, false);
}
}
@@ -185,7 +197,7 @@ class CCache {
$sth->execute([$owner_uid, $feed_id]);
if ($row = $sth->fetch()) {
- CCache::update($row["cat_id"], $owner_uid, true, true, true);
+ CCache::update((int)$row["cat_id"], $owner_uid, true, true, true);
}
}
}