diff options
author | Nils Adermann <naderman@naderman.de> | 2011-08-25 23:12:22 -0400 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-08-25 23:12:22 -0400 |
commit | d602f748663ea1b726bbf2614e4d54ee5da309b1 (patch) | |
tree | a3f7813719d5c3d7fe863defe5bcd3e10de61d08 /phpBB | |
parent | 34491f5569c7f4361da4bcf0e2ffb9b9d1274e98 (diff) | |
parent | 7ae871dfaefb00579ec9cc9eaf3e1d0bc7c82fed (diff) | |
download | forums-d602f748663ea1b726bbf2614e4d54ee5da309b1.tar forums-d602f748663ea1b726bbf2614e4d54ee5da309b1.tar.gz forums-d602f748663ea1b726bbf2614e4d54ee5da309b1.tar.bz2 forums-d602f748663ea1b726bbf2614e4d54ee5da309b1.tar.xz forums-d602f748663ea1b726bbf2614e4d54ee5da309b1.zip |
Merge remote-tracking branch 'github-bantu/ticket/9995' into develop-olympus
* github-bantu/ticket/9995:
[ticket/9995] Do not run forum SQL query when marking the whole board read.
[ticket/9995] Always continue when harvesting $forum_ids for markread().
[ticket/9995] Remove useless statement from display_forums()
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/functions_display.php | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 7982b9908d..0dcfab8449 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -51,6 +51,27 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod $sql_where = 'left_id > ' . $root_data['left_id'] . ' AND left_id < ' . $root_data['right_id']; } + // Handle marking everything read + if ($mark_read == 'all') + { + $redirect = build_url(array('mark', 'hash')); + meta_refresh(3, $redirect); + + if (check_link_hash(request_var('hash', ''), 'global')) + { + markread('all'); + + trigger_error( + $user->lang['FORUMS_MARKED'] . '<br /><br />' . + sprintf($user->lang['RETURN_INDEX'], '<a href="' . $redirect . '">', '</a>') + ); + } + else + { + trigger_error(sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>')); + } + } + // Display list of active topics for this category? $show_active = (isset($root_data['forum_flags']) && ($root_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS)) ? true : false; @@ -120,13 +141,14 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod $forum_id = $row['forum_id']; // Mark forums read? - if ($mark_read == 'forums' || $mark_read == 'all') + if ($mark_read == 'forums') { if ($auth->acl_get('f_list', $forum_id)) { $forum_ids[] = $forum_id; - continue; } + + continue; } // Category with no members @@ -152,8 +174,6 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod continue; } - $forum_ids[] = $forum_id; - if ($config['load_db_lastread'] && $user->data['is_registered']) { $forum_tracking_info[$forum_id] = (!empty($row['mark_time'])) ? $row['mark_time'] : $user->data['user_lastmark']; @@ -255,24 +275,16 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod $db->sql_freeresult($result); // Handle marking posts - if ($mark_read == 'forums' || $mark_read == 'all') + if ($mark_read == 'forums') { $redirect = build_url(array('mark', 'hash')); $token = request_var('hash', ''); if (check_link_hash($token, 'global')) { - if ($mark_read == 'all') - { - markread('all'); - $message = sprintf($user->lang['RETURN_INDEX'], '<a href="' . $redirect . '">', '</a>'); - } - else - { - // Add 0 to forums array to mark global announcements correctly - $forum_ids[] = 0; - markread('topics', $forum_ids); - $message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>'); - } + // Add 0 to forums array to mark global announcements correctly + $forum_ids[] = 0; + markread('topics', $forum_ids); + $message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>'); meta_refresh(3, $redirect); trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message); } |