diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-08-09 13:00:34 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-08-09 13:00:34 +0200 |
commit | 20b8ea947c656382871831ee83acd5de8fcd5040 (patch) | |
tree | 5dc5dab220ce6fa63036148a4165f18b7e9296d7 /phpBB | |
parent | 1351a1fe8060efa102f2c4cbd1f7ebe5a0fe7c02 (diff) | |
parent | 3825aee1306d60040677e15e237772e0666dfdd7 (diff) | |
download | forums-20b8ea947c656382871831ee83acd5de8fcd5040.tar forums-20b8ea947c656382871831ee83acd5de8fcd5040.tar.gz forums-20b8ea947c656382871831ee83acd5de8fcd5040.tar.bz2 forums-20b8ea947c656382871831ee83acd5de8fcd5040.tar.xz forums-20b8ea947c656382871831ee83acd5de8fcd5040.zip |
Merge pull request #2833 from Geolim4/ticket/11520
[ticket/11520] Re-adjust userpost count on topic fork
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/mcp/mcp_main.php | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/phpBB/includes/mcp/mcp_main.php b/phpBB/includes/mcp/mcp_main.php index 9f6125f256..92000c6ceb 100644 --- a/phpBB/includes/mcp/mcp_main.php +++ b/phpBB/includes/mcp/mcp_main.php @@ -1114,6 +1114,7 @@ function mcp_fork_topic($topic_ids) $forum_id = request_var('f', 0); $redirect = request_var('redirect', build_url(array('action', 'quickmod'))); $additional_msg = $success_msg = ''; + $counter = array(); $s_hidden_fields = build_hidden_fields(array( 'topic_id_list' => $topic_ids, @@ -1306,9 +1307,20 @@ function mcp_fork_topic($topic_ids) 'post_edit_time' => (int) $row['post_edit_time'], 'post_edit_count' => (int) $row['post_edit_count'], 'post_edit_locked' => (int) $row['post_edit_locked'], - 'post_postcount' => 0, + 'post_postcount' => $row['post_postcount'], ); - + // Adjust post count only if the post can be incremented to the user counter + if ($row['post_postcount']) + { + if (isset($counter[$row['poster_id']])) + { + ++$counter[$row['poster_id']]; + } + else + { + $counter[$row['poster_id']] = 1; + } + } $db->sql_query('INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary)); $new_post_id = $db->sql_nextid(); @@ -1428,6 +1440,18 @@ function mcp_fork_topic($topic_ids) WHERE forum_id = ' . $to_forum_id; $db->sql_query($sql); + if (!empty($counter)) + { + // Do only one query per user and not a query per post. + foreach ($counter as $user_id => $count) + { + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_posts = user_posts + ' . (int) $count . ' + WHERE user_id = ' . (int) $user_id; + $db->sql_query($sql); + } + } + sync('topic', 'topic_id', $new_topic_id_list); sync('forum', 'forum_id', $to_forum_id); |