diff options
author | Chris Smith <toonarmy@phpbb.com> | 2008-09-23 12:07:34 +0000 |
---|---|---|
committer | Chris Smith <toonarmy@phpbb.com> | 2008-09-23 12:07:34 +0000 |
commit | 38afbf6759744fc541c71b5af07b500555e3e3b7 (patch) | |
tree | 8b02d917b6ab62e742ae566008c84e5a01ab6a55 /phpBB/includes | |
parent | 687da94982f5d6f8c3290893d40ed84b02f54a37 (diff) | |
download | forums-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.php | 14 |
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( |