summaryrefslogtreecommitdiff
path: root/classes/pref
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-06-07 15:31:43 +0400
committerAndrew Dolgov <[email protected]>2013-06-07 15:31:43 +0400
commit496195db4e59e1a2a59ca190450a3b140e44f4a7 (patch)
tree78734a2b54c6653f3f8ed40fb62cbda1e95a57d4 /classes/pref
parent1d3848623da82f70f5f7cd6bac539737cb43cc64 (diff)
fix calculation of feed counts in pref-feeds editor
Diffstat (limited to 'classes/pref')
-rw-r--r--classes/pref/feeds.php27
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;
+ }
}
?>