aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/mcp/mcp_queue.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/mcp/mcp_queue.php')
-rw-r--r--phpBB/includes/mcp/mcp_queue.php34
1 files changed, 24 insertions, 10 deletions
diff --git a/phpBB/includes/mcp/mcp_queue.php b/phpBB/includes/mcp/mcp_queue.php
index aa77dbdf16..6209a27bf7 100644
--- a/phpBB/includes/mcp/mcp_queue.php
+++ b/phpBB/includes/mcp/mcp_queue.php
@@ -492,12 +492,18 @@ function approve_post($post_id_list, $id, $mode)
$total_topics = $total_posts = 0;
$forum_topics_posts = $topic_approve_sql = $topic_replies_sql = $post_approve_sql = $topic_id_list = $forum_id_list = $approve_log = array();
- $user_posts_sql = array();
+ $user_posts_sql = $post_approved_list = array();
$update_forum_information = false;
foreach ($post_info as $post_id => $post_data)
{
+ if ($post_data['post_approved'])
+ {
+ $post_approved_list[] = $post_id;
+ continue;
+ }
+
$topic_id_list[$post_data['topic_id']] = 1;
if ($post_data['forum_id'])
@@ -539,12 +545,6 @@ function approve_post($post_id_list, $id, $mode)
}
else
{
- if (!isset($topic_replies_sql[$post_data['topic_id']]))
- {
- $topic_replies_sql[$post_data['topic_id']] = 0;
- }
- $topic_replies_sql[$post_data['topic_id']]++;
-
$approve_log[] = array(
'type' => 'post',
'post_subject' => $post_data['post_subject'],
@@ -553,6 +553,15 @@ function approve_post($post_id_list, $id, $mode)
);
}
+ if ($post_data['topic_replies_real'] > 0)
+ {
+ if (!isset($topic_replies_sql[$post_data['topic_id']]))
+ {
+ $topic_replies_sql[$post_data['topic_id']] = 0;
+ }
+ $topic_replies_sql[$post_data['topic_id']]++;
+ }
+
if ($post_data['forum_id'])
{
if (!isset($forum_topics_posts[$post_data['forum_id']]))
@@ -583,6 +592,11 @@ function approve_post($post_id_list, $id, $mode)
$update_forum_information = true;
}
}
+ $post_id_list = array_values(array_diff($post_id_list, $post_approved_list));
+ for ($i = 0, $size = sizeof($post_approved_list); $i < $size; $i++)
+ {
+ unset($post_info[$post_approved_list[$i]]);
+ }
if (sizeof($topic_approve_sql))
{
@@ -652,12 +666,12 @@ function approve_post($post_id_list, $id, $mode)
if ($total_topics)
{
- set_config('num_topics', $config['num_topics'] + $total_topics, true);
+ set_config_count('num_topics', $total_topics, true);
}
if ($total_posts)
{
- set_config('num_posts', $config['num_posts'] + $total_posts, true);
+ set_config_count('num_posts', $total_posts, true);
}
unset($topic_approve_sql, $topic_replies_sql, $post_approve_sql);
@@ -733,7 +747,7 @@ function approve_post($post_id_list, $id, $mode)
}
else
{
- $success_msg = (sizeof($post_id_list) == 1) ? 'POST_APPROVED_SUCCESS' : 'POSTS_APPROVED_SUCCESS';
+ $success_msg = (sizeof($post_id_list) + sizeof($post_approved_list) == 1) ? 'POST_APPROVED_SUCCESS' : 'POSTS_APPROVED_SUCCESS';
}
}
else