diff options
author | Marc Alexander <admin@m-a-styles.de> | 2017-01-16 21:34:22 +0100 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2017-01-16 22:29:57 +0100 |
commit | 02a35baf707885a02debbcfa9488b85cfcb017d9 (patch) | |
tree | ce32e379d3fe5dc808ea91d330376950f3b1c12a /phpBB/includes | |
parent | bad8f0b9bcd4829075ffe9f142f30e7fe43ba8e8 (diff) | |
download | forums-02a35baf707885a02debbcfa9488b85cfcb017d9.tar forums-02a35baf707885a02debbcfa9488b85cfcb017d9.tar.gz forums-02a35baf707885a02debbcfa9488b85cfcb017d9.tar.bz2 forums-02a35baf707885a02debbcfa9488b85cfcb017d9.tar.xz forums-02a35baf707885a02debbcfa9488b85cfcb017d9.zip |
[ticket/7336] Index first post when splitting topics
PHPBB3-7336
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/mcp/mcp_topic.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/phpBB/includes/mcp/mcp_topic.php b/phpBB/includes/mcp/mcp_topic.php index 2217f8fdeb..7dbe7787cb 100644 --- a/phpBB/includes/mcp/mcp_topic.php +++ b/phpBB/includes/mcp/mcp_topic.php @@ -407,6 +407,7 @@ function mcp_topic_view($id, $mode, $action) function split_topic($action, $topic_id, $to_forum_id, $subject) { global $db, $template, $user, $phpEx, $phpbb_root_path, $auth, $config; + global $phpbb_dispatcher; $post_id_list = request_var('post_id_list', array(0)); $forum_id = request_var('forum_id', 0); @@ -567,6 +568,47 @@ function split_topic($action, $topic_id, $to_forum_id, $subject) WHERE post_id = {$post_id_list[0]}"; $db->sql_query($sql); + // Grab data for first post in split topic + $sql_array = array( + 'SELECT' => 'p.post_id, p.forum_id, p.poster_id, p.post_text, f.enable_indexing', + 'FROM' => array( + POSTS_TABLE => 'p', + ), + 'LEFT_JOIN' => array( + array( + 'FROM' => array(FORUMS_TABLE => 'f'), + 'ON' => 'p.forum_id = f.forum_id', + ) + ), + 'WHERE' => "post_id = {$post_id_list[0]}", + ); + $sql = $db->sql_build_query('SELECT', $sql_array); + $result = $db->sql_query($sql); + $first_post_data = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + // Index first post as if it were edited + if ($first_post_data['enable_indexing']) + { + // Select the search method and do some additional checks to ensure it can actually be utilised + $search_type = $config['search_type']; + + if (!class_exists($search_type)) + { + trigger_error('NO_SUCH_SEARCH_MODULE'); + } + + $error = false; + $search = new $search_type($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user, $phpbb_dispatcher); + + if ($error) + { + trigger_error($error); + } + + $search->index('edit', $first_post_data['post_id'], $first_post_data['post_text'], $subject, $first_post_data['poster_id'], $first_post_data['forum_id']); + } + // Copy topic subscriptions to new topic $sql = 'SELECT user_id, notify_status FROM ' . TOPICS_WATCH_TABLE . ' |