diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index c506b46f8d..d2bec49982 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -517,7 +517,7 @@ if (!$get_info) array('poll_option_id', 'vote_results.vote_option_id', ''), array('topic_id', 'vote_desc.topic_id', ''), - array('', 'topics.topic_poster AS poster_id', ''), + array('', 'topics.topic_poster AS poster_id', 'phpbb_user_id'), array('poll_option_text', 'vote_results.vote_option_text', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')), array('poll_option_total', 'vote_results.vote_result', ''), @@ -605,7 +605,7 @@ if (!$get_info) array('msg_id', 'privmsgs.privmsgs_id', ''), array('root_level', 0, ''), - array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), + array('author_id', 'privmsgs.privmsgs_from_userid AS poster_id', 'phpbb_user_id'), array('icon_id', 0, ''), array('author_ip', 'privmsgs.privmsgs_ip', 'decode_ip'), array('message_time', 'privmsgs.privmsgs_date', ''), @@ -624,7 +624,6 @@ if (!$get_info) array('bbcode_uid', 'privmsgs.privmsgs_date AS post_time', 'make_uid'), array('message_text', 'privmsgs_text.privmsgs_text', 'phpbb_prepare_message'), array('', 'privmsgs_text.privmsgs_bbcode_uid AS old_bbcode_uid', ''), - array('', 'privmsgs.privmsgs_from_userid AS poster_id', ''), array('bbcode_bitfield', '', 'get_bbcode_bitfield'), array('to_address', 'privmsgs.privmsgs_to_userid', 'phpbb_privmsgs_to_userid'), @@ -787,6 +786,7 @@ if (!$get_info) ), array('user_id', 'users.user_id', 'phpbb_user_id'), + array('', 'users.user_id AS poster_id', 'phpbb_user_id'), array('user_type', 'users.user_active', 'set_user_type'), array('group_id', 'users.user_level', 'phpbb_set_primary_group'), array('user_regdate', 'users.user_regdate', ''), diff --git a/phpBB/install/convertors/functions_phpbb20.php b/phpBB/install/convertors/functions_phpbb20.php index 62ce8b774a..2f7edc18cd 100644 --- a/phpBB/install/convertors/functions_phpbb20.php +++ b/phpBB/install/convertors/functions_phpbb20.php @@ -63,8 +63,19 @@ function phpbb_insert_forums() $sql = 'SELECT cat_id, cat_title FROM ' . $convert->src_table_prefix . 'categories ORDER BY cat_order'; + + if ($convert->mysql_convert) + { + $db->sql_query("SET NAMES 'binary'"); + } + $result = $db->sql_query($sql); + if ($convert->mysql_convert) + { + $db->sql_query("SET NAMES 'utf8'"); + } + $cats_added = array(); while ($row = $db->sql_fetchrow($result)) { @@ -151,8 +162,19 @@ function phpbb_insert_forums() LEFT JOIN ' . $convert->src_table_prefix . 'forum_prune fp ON f.forum_id = fp.forum_id GROUP BY f.forum_id ORDER BY f.cat_id, f.forum_order'; + + if ($convert->mysql_convert) + { + $db->sql_query("SET NAMES 'binary'"); + } + $result = $db->sql_query($sql); + if ($convert->mysql_convert) + { + $db->sql_query("SET NAMES 'utf8'"); + } + while ($row = $db->sql_fetchrow($result)) { // Some might have forums here with an id not being "possible"... diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php index 485b9fb281..03ed5d7f40 100644 --- a/phpBB/install/install_convert.php +++ b/phpBB/install/install_convert.php @@ -46,9 +46,14 @@ class convert var $fulltext_search; // Batch size, can be adjusted by the conversion file - var $batch_size = 6000; + // For big boards a value of 6000 seems to be optimal + var $batch_size = 2000; // Number of rows to be inserted at once (extended insert) if supported - var $num_wait_rows = 30; + // For installations having enough memory a value of 60 may be good. + var $num_wait_rows = 20; + + // Mysqls internal recoding engine messing up with our (better) functions? We at least support more encodings than mysql so should use it in favor. + var $mysql_convert = false; var $p_master; @@ -606,9 +611,16 @@ class install_convert extends module $this->p_master->error($user->lang['DEV_NO_TEST_FILE'], __LINE__, __FILE__); } - if (!is_writeable($phpbb_root_path . $local_path)) + if (!$local_path || !is_writeable($phpbb_root_path . $local_path)) { - $bad_folders[] = $local_path; + if (!$local_path) + { + $bad_folders[] = sprintf($user->lang['CONFIG_PHPBB_EMPTY'], $folder); + } + else + { + $bad_folders[] = $local_path; + } } } } @@ -877,7 +889,7 @@ class install_convert extends module $counting = -1; $batch_time = 0; - $mysql_convert = false; + $convert->mysql_convert = false; switch ($db->sql_layer) { @@ -886,12 +898,12 @@ class install_convert extends module case 'mysql4': if (version_compare($db->mysql_version, '4.1.3', '>=')) { - $mysql_convert = true; + $convert->mysql_convert = true; } break; case 'mysqli': - $mysql_convert = true; + $convert->mysql_convert = true; break; } @@ -917,7 +929,7 @@ class install_convert extends module $mtime = explode(' ', microtime()); $batch_time = $mtime[0] + $mtime[1]; - if ($mysql_convert) + if ($convert->mysql_convert) { $db->sql_query("SET NAMES 'binary'"); } @@ -925,7 +937,7 @@ class install_convert extends module // Take skip rows into account and only fetch batch_size amount of rows $___result = $db->sql_query_limit($sql, $convert->batch_size, $skip_rows); - if ($mysql_convert) + if ($convert->mysql_convert) { $db->sql_query("SET NAMES 'utf8'"); } @@ -1677,7 +1689,7 @@ class install_convert extends module { if (!defined('DEBUG_EXTRA')) { - meta_refresh(5, $url); + // meta_refresh(5, $url); } } diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index c4fc43731b..8a8cc028d4 100755 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -58,6 +58,7 @@ $lang = array_merge($lang, array( 'CONFIG_CONVERT' => 'Converting the configuration', 'CONFIG_FILE_UNABLE_WRITE' => 'It was not possible to write the configuration file. Alternative methods for this file to be created are presented below', 'CONFIG_FILE_WRITTEN' => 'The configuration file has been written, you may now proceed to the next step of the installation', + 'CONFIG_PHPBB_EMPTY' => 'The phpBB3 config variable for "%s" is empty.' 'CONFIG_RETRY' => 'Retry', 'CONTACT_EMAIL_CONFIRM' => 'Confirm contact email', 'CONTINUE_CONVERT' => 'Continue conversion',