diff options
author | Andrew Dolgov <[email protected]> | 2013-06-07 15:31:43 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-06-07 15:31:43 +0400 |
commit | 496195db4e59e1a2a59ca190450a3b140e44f4a7 (patch) | |
tree | 78734a2b54c6653f3f8ed40fb62cbda1e95a57d4 /classes/pref/feeds.php | |
parent | 1d3848623da82f70f5f7cd6bac539737cb43cc64 (diff) |
fix calculation of feed counts in pref-feeds editor
Diffstat (limited to 'classes/pref/feeds.php')
-rw-r--r-- | classes/pref/feeds.php | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index d43740310..d2dc6f7c3 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -58,9 +58,10 @@ class Pref_Feeds extends Handler_Protected { $cat['items'] = $this->get_category_items($line['id']); - $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items'])); + $num_children = $this->calculate_children_count($cat); + $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children); - if (count($cat['items']) > 0 || $show_empty_cats) + if ($num_children > 0 || $show_empty_cats) array_push($items, $cat); } @@ -206,9 +207,10 @@ class Pref_Feeds extends Handler_Protected { $cat['items'] = $this->get_category_items($line['id']); - $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items'])); + $num_children = $this->calculate_children_count($cat); + $cat['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children); - if (count($cat['items']) > 0 || $show_empty_cats) + if ($num_children > 0 || $show_empty_cats) array_push($root['items'], $cat); $root['param'] += count($cat['items']); @@ -255,8 +257,8 @@ class Pref_Feeds extends Handler_Protected { if (count($cat['items']) > 0 || $show_empty_cats) array_push($root['items'], $cat); - $root['param'] += count($cat['items']); - $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', count($cat['items'])), count($cat['items'])); + $num_children = $this->calculate_children_count($root); + $root['param'] = vsprintf(_ngettext('(%d feed)', '(%d feeds)', $num_children), $num_children); } else { $feed_result = $this->dbh->query("SELECT id, title, last_error, @@ -1937,6 +1939,19 @@ class Pref_Feeds extends Handler_Protected { owner_uid = " . $_SESSION["uid"]); } + private function calculate_children_count($cat) { + $c = 0; + + foreach ($cat['items'] as $child) { + if ($child['type'] == 'category') { + $c += $this->calculate_children_count($child); + } else { + $c += 1; + } + } + + return $c; + } } ?> |