aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorChris Smith <toonarmy@phpbb.com>2008-09-23 12:07:34 +0000
committerChris Smith <toonarmy@phpbb.com>2008-09-23 12:07:34 +0000
commit38afbf6759744fc541c71b5af07b500555e3e3b7 (patch)
tree8b02d917b6ab62e742ae566008c84e5a01ab6a55 /phpBB/includes
parent687da94982f5d6f8c3290893d40ed84b02f54a37 (diff)
downloadforums-38afbf6759744fc541c71b5af07b500555e3e3b7.tar
forums-38afbf6759744fc541c71b5af07b500555e3e3b7.tar.gz
forums-38afbf6759744fc541c71b5af07b500555e3e3b7.tar.bz2
forums-38afbf6759744fc541c71b5af07b500555e3e3b7.tar.xz
forums-38afbf6759744fc541c71b5af07b500555e3e3b7.zip
Correctly handle unread status of subforums (that are not shown on the index) of forums that are shown on the index. #14589
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8909 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions_display.php14
1 files changed, 14 insertions, 0 deletions
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php
index 937af3e95e..271fe02115 100644
--- a/phpBB/includes/functions_display.php
+++ b/phpBB/includes/functions_display.php
@@ -205,6 +205,12 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
$subforums[$parent_id][$forum_id]['display'] = ($row['display_on_index']) ? true : false;
$subforums[$parent_id][$forum_id]['name'] = $row['forum_name'];
$subforums[$parent_id][$forum_id]['orig_forum_last_post_time'] = $row['forum_last_post_time'];
+ $subforums[$parent_id][$forum_id]['children'] = array();
+
+ if (isset($subforums[$parent_id][$row['parent_id']]) && !$row['display_on_index'])
+ {
+ $subforums[$parent_id][$row['parent_id']]['children'][] = $forum_id;
+ }
$forum_rows[$parent_id]['forum_topics'] += $row['forum_topics'];
@@ -304,6 +310,14 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
{
$subforum_unread = (isset($forum_tracking_info[$subforum_id]) && $subforum_row['orig_forum_last_post_time'] > $forum_tracking_info[$subforum_id]) ? true : false;
+ if (!$subforum_unread && !empty($subforum_row['children']))
+ {
+ foreach ($subforum_row['children'] as $child_id)
+ {
+ $subforum_unread = (isset($forum_tracking_info[$child_id]) && $subforums[$forum_id][$child_id]['orig_forum_last_post_time'] > $forum_tracking_info[$child_id]) ? true : false;
+ }
+ }
+
if ($subforum_row['display'] && $subforum_row['name'])
{
$subforums_list[] = array(