diff options
-rw-r--r-- | phpBB/includes/mcp/mcp_queue.php | 63 | ||||
-rw-r--r-- | phpBB/language/en/acp/common.php | 2 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/mcp_approve.html | 4 |
3 files changed, 57 insertions, 12 deletions
diff --git a/phpBB/includes/mcp/mcp_queue.php b/phpBB/includes/mcp/mcp_queue.php index 835f19555f..29c0375e6c 100644 --- a/phpBB/includes/mcp/mcp_queue.php +++ b/phpBB/includes/mcp/mcp_queue.php @@ -960,6 +960,17 @@ class mcp_queue $post_info = get_post_data($post_id_list, 'm_approve'); + $is_disapproving = false; + foreach ($post_info as $post_id => $post_data) + { + if ($post_data['post_visibility'] == ITEM_DELETED) + { + continue; + } + + $is_disapproving = true; + } + if (confirm_box(true)) { $disapprove_log = $disapprove_log_topics = $disapprove_log_posts = array(); @@ -996,6 +1007,7 @@ class mcp_queue 'post_subject' => $post_info[$post_id]['topic_title'], 'forum_id' => $post_info[$post_id]['forum_id'], 'topic_id' => 0, // useless to log a topic id, as it will be deleted + 'post_username' => ($post_info[$post_id]['poster_id'] == ANONYMOUS && !empty($post_info[$post_id]['post_username'])) ? $post_info[$post_id]['post_username'] : $post_info[$post_id]['username'], ); } } @@ -1007,6 +1019,7 @@ class mcp_queue 'post_subject' => $post_info[$post_id]['post_subject'], 'forum_id' => $post_info[$post_id]['forum_id'], 'topic_id' => $post_info[$post_id]['topic_id'], + 'post_username' => ($post_info[$post_id]['poster_id'] == ANONYMOUS && !empty($post_info[$post_id]['post_username'])) ? $post_info[$post_id]['post_username'] : $post_info[$post_id]['username'], ); } @@ -1037,7 +1050,16 @@ class mcp_queue foreach ($disapprove_log as $log_data) { - add_log('mod', $log_data['forum_id'], $log_data['topic_id'], ($log_data['type'] == 'topic') ? 'LOG_TOPIC_DISAPPROVED' : 'LOG_POST_DISAPPROVED', $log_data['post_subject'], $disapprove_reason); + if ($is_disapproving) + { + $l_log_message = ($log_data['type'] == 'topic') ? 'LOG_TOPIC_DISAPPROVED' : 'LOG_POST_DISAPPROVED'; + add_log('mod', $log_data['forum_id'], $log_data['topic_id'], $l_log_message, $log_data['post_subject'], $disapprove_reason); + } + else + { + $l_log_message = ($log_data['type'] == 'topic') ? 'LOG_DELETE_TOPIC' : 'LOG_DELETE_POST'; + add_log('mod', $log_data['forum_id'], $log_data['topic_id'], $l_log_message, $log_data['post_subject'], $log_data['post_username']); + } } } @@ -1115,21 +1137,29 @@ class mcp_queue unset($lang_reasons, $post_info, $disapprove_reason, $disapprove_reason_lang); + if ($num_disapproved_topics) { - $success_msg = ($num_disapproved_topics == 1) ? 'TOPIC_DISAPPROVED_SUCCESS' : 'TOPICS_DISAPPROVED_SUCCESS'; + $success_msg = ($num_disapproved_topics == 1) ? 'TOPIC' : 'TOPICS'; } else { - $success_msg = ($num_disapproved_posts == 1) ? 'POST_DISAPPROVED_SUCCESS' : 'POSTS_DISAPPROVED_SUCCESS'; + $success_msg = ($num_disapproved_posts == 1) ? 'POST' : 'POSTS'; + } + + if ($is_disapproving) + { + $success_msg .= '_DISAPPROVED_SUCCESS'; + } + else + { + $success_msg .= '_DELETED_SUCCESS'; } } else { include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx); - display_reasons($reason_id); - $show_notify = false; foreach ($post_info as $post_data) @@ -1145,14 +1175,29 @@ class mcp_queue } } + $l_confirm_msg = 'DISAPPROVE_POST'; + $confirm_template = 'mcp_approve.html'; + if ($is_disapproving) + { + display_reasons($reason_id); + } + else + { + $user->add_lang('posting'); + + $l_confirm_msg = 'DELETE_POST_PERMANENTLY'; + $confirm_template = 'confirm_delete_body.html'; + } + $l_confirm_msg .= ((sizeof($post_id_list) == 1) ? '' : 'S'); + $template->assign_vars(array( 'S_NOTIFY_POSTER' => $show_notify, 'S_APPROVE' => false, - 'REASON' => $reason, - 'ADDITIONAL_MSG' => $additional_msg) - ); + 'REASON' => ($is_disapproving) ? $reason : '', + 'ADDITIONAL_MSG' => $additional_msg, + )); - confirm_box(false, 'DISAPPROVE_POST' . ((sizeof($post_id_list) == 1) ? '' : 'S'), $s_hidden_fields, 'mcp_approve.html'); + confirm_box(false, $l_confirm_msg, $s_hidden_fields, $confirm_template); } $redirect = $request->variable('redirect', "index.$phpEx"); diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index a21831bd39..e647485828 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -569,7 +569,7 @@ $lang = array_merge($lang, array( 'LOG_SPLIT_SOURCE' => '<strong>Split posts</strong><br />» from %s', 'LOG_TOPIC_APPROVED' => '<strong>Approved topic</strong><br />» %s', - 'LOG_TOPIC_RESTORED' => '<strong>Restored topic</strong><br />» %s', + 'LOG_TOPIC_RESTORED' => '<strong>Restored topic</strong><br />» %s', 'LOG_TOPIC_DISAPPROVED' => '<strong>Disapproved topic “%1$s” with the following reason</strong><br />%2$s', 'LOG_TOPIC_RESYNC' => '<strong>Resynchronised topic counters</strong><br />» %s', 'LOG_TOPIC_TYPE_CHANGED' => '<strong>Changed topic type</strong><br />» %s', diff --git a/phpBB/styles/prosilver/template/mcp_approve.html b/phpBB/styles/prosilver/template/mcp_approve.html index f0978df518..ab7f92e262 100644 --- a/phpBB/styles/prosilver/template/mcp_approve.html +++ b/phpBB/styles/prosilver/template/mcp_approve.html @@ -7,7 +7,7 @@ <label><input type="checkbox" name="notify_poster" checked="checked" /> <!-- IF S_APPROVE -->{L_NOTIFY_POSTER_APPROVAL}<!-- ELSE -->{L_NOTIFY_POSTER_DISAPPROVAL}<!-- ENDIF --></label> <!-- ENDIF --> - <!-- IF not S_APPROVE and not S_RESTORE --> + <!-- IF not S_APPROVE and not S_RESTORE and .reason --> <label><strong>{L_DISAPPROVE_REASON}{L_COLON}</strong> <select name="reason_id"> <!-- BEGIN reason --><option value="{reason.ID}"<!-- IF reason.S_SELECTED --> selected="selected"<!-- ENDIF -->>{reason.DESCRIPTION}</option><!-- END reason --> @@ -45,7 +45,7 @@ </dl> <!-- ENDIF --> - <!-- IF not S_APPROVE and not S_RESTORE --> + <!-- IF not S_APPROVE and not S_RESTORE and .reason --> <dl class="fields2 nobg"> <dt><label>{L_DISAPPROVE_REASON}{L_COLON}</label></dt> <dd><select name="reason_id"> |