Merge pull request #4472 from dsinn/ticket/14804

[ticket/14804] Add core event to MCP after merging topics
This commit is contained in:
Marc Alexander 2016-11-12 13:53:24 +01:00
commit 577d669ba7
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -396,7 +396,7 @@ function mcp_resync_topics($topic_ids)
*/ */
function merge_topics($forum_id, $topic_ids, $to_topic_id) function merge_topics($forum_id, $topic_ids, $to_topic_id)
{ {
global $db, $template, $user, $phpEx, $phpbb_root_path, $auth; global $db, $template, $user, $phpEx, $phpbb_root_path, $auth, $phpbb_dispatcher;
if (!sizeof($topic_ids)) if (!sizeof($topic_ids))
{ {
@ -411,9 +411,9 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
$sync_topics = array_merge($topic_ids, array($to_topic_id)); $sync_topics = array_merge($topic_ids, array($to_topic_id));
$topic_data = phpbb_get_topic_data($sync_topics, 'm_merge'); $all_topic_data = phpbb_get_topic_data($sync_topics, 'm_merge');
if (!sizeof($topic_data) || empty($topic_data[$to_topic_id])) if (!sizeof($all_topic_data) || empty($all_topic_data[$to_topic_id]))
{ {
$template->assign_var('MESSAGE', $user->lang['NO_FINAL_TOPIC_SELECTED']); $template->assign_var('MESSAGE', $user->lang['NO_FINAL_TOPIC_SELECTED']);
return; return;
@ -421,13 +421,13 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
$sync_forums = array(); $sync_forums = array();
$topic_views = 0; $topic_views = 0;
foreach ($topic_data as $data) foreach ($all_topic_data as $data)
{ {
$sync_forums[$data['forum_id']] = $data['forum_id']; $sync_forums[$data['forum_id']] = $data['forum_id'];
$topic_views = max($topic_views, $data['topic_views']); $topic_views = max($topic_views, $data['topic_views']);
} }
$topic_data = $topic_data[$to_topic_id]; $to_topic_data = $all_topic_data[$to_topic_id];
$post_id_list = request_var('post_id_list', array(0)); $post_id_list = request_var('post_id_list', array(0));
$start = request_var('start', 0); $start = request_var('start', 0);
@ -475,10 +475,10 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
if (confirm_box(true)) if (confirm_box(true))
{ {
$to_forum_id = $topic_data['forum_id']; $to_forum_id = $to_topic_data['forum_id'];
move_posts($post_id_list, $to_topic_id, false); move_posts($post_id_list, $to_topic_id, false);
add_log('mod', $to_forum_id, $to_topic_id, 'LOG_MERGE', $topic_data['topic_title']); add_log('mod', $to_forum_id, $to_topic_id, 'LOG_MERGE', $to_topic_data['topic_title']);
// Update topic views count // Update topic views count
$sql = 'UPDATE ' . TOPICS_TABLE . ' $sql = 'UPDATE ' . TOPICS_TABLE . '
@ -511,6 +511,20 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
$redirect = request_var('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&t=$to_topic_id"); $redirect = request_var('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&t=$to_topic_id");
$redirect = reapply_sid($redirect); $redirect = reapply_sid($redirect);
/**
* Perform additional actions after merging topics.
*
* @event core.mcp_forum_merge_topics_after
* @var array all_topic_data The data from all topics involved in the merge
* @var int to_topic_id The ID of the topic into which the rest are merged
* @since 3.1.11-RC1
*/
$vars = array(
'all_topic_data',
'to_topic_id',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_forum_merge_topics_after', compact($vars)));
meta_refresh(3, $redirect); meta_refresh(3, $redirect);
trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link); trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link);
} }