[ticket/9995] Do not run forum SQL query when marking the whole board read.

PHPBB3-9995
This commit is contained in:
Andreas Fischer 2011-08-26 03:59:39 +02:00
parent afc35f610d
commit 7ae871dfae

View file

@ -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']; $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? // 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; $show_active = (isset($root_data['forum_flags']) && ($root_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS)) ? true : false;
@ -120,7 +141,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
$forum_id = $row['forum_id']; $forum_id = $row['forum_id'];
// Mark forums read? // Mark forums read?
if ($mark_read == 'forums' || $mark_read == 'all') if ($mark_read == 'forums')
{ {
if ($auth->acl_get('f_list', $forum_id)) if ($auth->acl_get('f_list', $forum_id))
{ {
@ -254,24 +275,16 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
$db->sql_freeresult($result); $db->sql_freeresult($result);
// Handle marking posts // Handle marking posts
if ($mark_read == 'forums' || $mark_read == 'all') if ($mark_read == 'forums')
{ {
$redirect = build_url(array('mark', 'hash')); $redirect = build_url(array('mark', 'hash'));
$token = request_var('hash', ''); $token = request_var('hash', '');
if (check_link_hash($token, 'global')) 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 // Add 0 to forums array to mark global announcements correctly
$forum_ids[] = 0; $forum_ids[] = 0;
markread('topics', $forum_ids); markread('topics', $forum_ids);
$message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>'); $message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>');
}
meta_refresh(3, $redirect); meta_refresh(3, $redirect);
trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message); trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message);
} }