diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php
index 367b38fd25..d49f933008 100644
--- a/phpBB/includes/acp/acp_main.php
+++ b/phpBB/includes/acp/acp_main.php
@@ -249,7 +249,10 @@ class acp_main
}
unset($posted);
- $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
+ if (sizeof($sql_ary))
+ {
+ $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
+ }
}
add_log('admin', 'LOG_RESYNC_POST_MARKING');
diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php
index f8702fcc29..294390af69 100644
--- a/phpBB/includes/functions_convert.php
+++ b/phpBB/includes/functions_convert.php
@@ -1934,7 +1934,10 @@ function update_topics_posted()
}
unset($posted);
- $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
+ if (sizeof($sql_ary))
+ {
+ $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
+ }
}
}
diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php
index 7e017baafe..efae5a7bcf 100644
--- a/phpBB/includes/ucp/ucp_register.php
+++ b/phpBB/includes/ucp/ucp_register.php
@@ -67,6 +67,22 @@ class ucp_register
$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';
$add_coppa = ($coppa) ? '&coppa=1' : '';
+ $s_hidden_fields = ($confirm_id) ? array('confirm_id' => $confirm_id) : array();
+
+ // If we change the language, we want to pass on some more possible parameter.
+ if ($change_lang)
+ {
+ // We do not include the password!
+ $s_hidden_fields = array_merge($s_hidden_fields, array(
+ 'username' => request_var('username', '', true),
+ 'email' => strtolower(request_var('email', '')),
+ 'email_confirm' => strtolower(request_var('email_confirm', '')),
+ 'confirm_code' => request_var('confirm_code', ''),
+ 'lang' => $user->lang_name,
+ 'tz' => request_var('tz', (float) $config['board_timezone']),
+ ));
+ }
+
if ($coppa === false && $config['coppa_enable'])
{
$now = getdate();
@@ -81,7 +97,7 @@ class ucp_register
'U_COPPA_YES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang),
'S_SHOW_COPPA' => true,
- 'S_HIDDEN_FIELDS' => ($confirm_id) ? '' : '',
+ 'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang))
);
}
@@ -92,7 +108,7 @@ class ucp_register
'S_SHOW_COPPA' => false,
'S_REGISTRATION' => true,
- 'S_HIDDEN_FIELDS' => ($confirm_id) ? '' : '',
+ 'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang . $add_coppa))
);
}
diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php
index 49f21548ca..466de0e956 100644
--- a/phpBB/install/install_convert.php
+++ b/phpBB/install/install_convert.php
@@ -184,23 +184,23 @@ class install_convert extends module
'L_CONTINUE' => $lang['CONTINUE_OLD_CONVERSION'],
'S_CONTINUE' => true,
- 'U_NEW_ACTION' => $this->p_master->module_url . "?mode=$mode&sub=intro&new_conv=1",
- 'U_CONTINUE_ACTION' => $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag={$options['tag']}{$options['step']}",
+ 'U_NEW_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&sub=intro&new_conv=1",
+ 'U_CONTINUE_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$options['tag']}{$options['step']}",
));
return;
}
- $this->list_convertors($mode, $sub);
+ $this->list_convertors($sub);
break;
case 'settings':
- $this->get_convert_settings($mode, $sub);
+ $this->get_convert_settings($sub);
break;
case 'in_progress':
- $this->convert_data($mode, $sub);
+ $this->convert_data($sub);
break;
case 'final':
@@ -245,7 +245,7 @@ class install_convert extends module
/**
* Generate a list of all available conversion modules
*/
- function list_convertors($mode, $sub)
+ function list_convertors($sub)
{
global $lang, $template, $phpbb_root_path, $phpEx;
@@ -313,14 +313,14 @@ class install_convert extends module
'SOFTWARE' => $convertors[$index]['forum_name'],
'VERSION' => $convertors[$index]['version'],
- 'U_CONVERT' => $this->p_master->module_url . "?mode=$mode&sub=settings&tag=" . $convertors[$index]['tag'],
+ 'U_CONVERT' => $this->p_master->module_url . "?mode={$this->mode}&sub=settings&tag=" . $convertors[$index]['tag'],
));
}
}
/**
*/
- function get_convert_settings($mode, $sub)
+ function get_convert_settings($sub)
{
global $lang, $template, $db, $phpbb_root_path, $phpEx, $config, $cache;
@@ -510,7 +510,7 @@ class install_convert extends module
$template->assign_vars(array(
'L_SUBMIT' => $lang['BEGIN_CONVERT'],
// 'S_HIDDEN' => $s_hidden_fields,
- 'U_ACTION' => $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag=$convertor_tag",
+ 'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag=$convertor_tag",
));
return;
@@ -556,14 +556,14 @@ class install_convert extends module
$template->assign_vars(array(
'L_SUBMIT' => $lang['BEGIN_CONVERT'],
- 'U_ACTION' => $this->p_master->module_url . "?mode=$mode&sub=settings&tag=$convertor_tag",
+ 'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&sub=settings&tag=$convertor_tag",
));
}
/**
* The function which does the actual work (or dispatches it to the relevant places)
*/
- function convert_data($mode, $sub)
+ function convert_data($sub)
{
global $template, $user, $phpbb_root_path, $phpEx, $db, $lang, $config, $cache;
global $convert, $convert_row, $message_parser, $skip_rows;
@@ -757,6 +757,7 @@ class install_convert extends module
$message_parser = new parse_message();
$jump = request_var('jump', 0);
+ $final_jump = request_var('final_jump', 0);
$sync_batch = request_var('sync_batch', -1);
$last_statement = request_var('last', 0);
@@ -773,6 +774,12 @@ class install_convert extends module
return;
}
+ if ($final_jump)
+ {
+ $this->final_jump($final_jump);
+ return;
+ }
+
$current_table = request_var('current_table', 0);
$old_current_table = min(-1, $current_table - 1);
$skip_rows = request_var('skip_rows', 0);
@@ -824,7 +831,7 @@ class install_convert extends module
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['INSTALL_TEST'],
- 'U_ACTION' => $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag={$convert->convertor_tag}",
+ 'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}",
));
return;
}
@@ -925,30 +932,13 @@ class install_convert extends module
$this->p_master->error(sprintf($user->lang['TABLES_MISSING'], implode(', ', $missing_tables)) . '
' . $user->lang['CHECK_TABLE_PREFIX'], __LINE__, __FILE__);
}
- $step = '&confirm=1';
- set_config('convert_progress', serialize(array(
- 'step' => $step,
- 'table_prefix' => $convert->src_table_prefix,
- 'tag' => $convert->convertor_tag,
- )), true);
- set_config('convert_db_server', serialize(array(
- 'dbms' => $convert->src_dbms,
- 'dbhost' => $convert->src_dbhost,
- 'dbport' => $convert->src_dbport,
- 'dbname' => $convert->src_dbname,
- )), true);
- set_config('convert_db_user', serialize(array(
- 'dbuser' => $convert->src_dbuser,
- 'dbpasswd' => $convert->src_dbpasswd,
- )), true);
-
+ $url = $this->save_convert_progress('&confirm=1');
$msg = $user->lang['PRE_CONVERT_COMPLETE'];
if ($convert->convertor_data['author_notes'])
{
$msg .= '
' . sprintf($user->lang['AUTHOR_NOTES'], $convert->convertor_data['author_notes']); } - $url = $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag={$convert->convertor_tag}$step"; $template->assign_vars(array( 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], @@ -1354,32 +1344,13 @@ class install_convert extends module }*/ // Looks like we ran out of time. - $step = '¤t_table=' . $current_table . '&skip_rows=' . $skip_rows; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); + $url = $this->save_convert_progress('¤t_table=' . $current_table . '&skip_rows=' . $skip_rows); $current_table++; // $percentage = ($skip_rows == 0) ? 0 : floor(100 / ($total_rows / $skip_rows)); $msg = sprintf($user->lang['STEP_PERCENT_COMPLETED'], $current_table, sizeof($convert->convertor['schema'])); - $url = $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag={$convert->convertor_tag}$step"; - $template->assign_vars(array( 'L_MESSAGE' => $msg, 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], @@ -1392,27 +1363,8 @@ class install_convert extends module } // Process execute_last then we'll be done - $step = '&jump=1'; + $url = $this->save_convert_progress('&jump=1'); - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); - - $url = $this->p_master->module_url . "?mode=$mode&sub=in_progress&tag={$convert->convertor_tag}$step"; - $template->assign_vars(array( 'L_SUBMIT' => $user->lang['FINAL_STEP'], 'U_ACTION' => $url, @@ -1423,7 +1375,7 @@ class install_convert extends module } /** - * Sync function being executed at the very end... + * Sync function being executed at the middle, some functions need to be executed after a successful sync. */ function sync_forums($sync_batch) { @@ -1476,25 +1428,10 @@ class install_convert extends module if ($sync_batch >= $primary_max) { - $sync_batch = -1; - - $db->sql_query('DELETE FROM ' . CONFIG_TABLE . " - WHERE config_name = 'convert_progress' - OR config_name = 'convert_options' - OR config_name = 'convert_db_server' - OR config_name = 'convert_db_user'"); - $db->sql_query('DELETE FROM ' . SESSIONS_TABLE); - - @unlink($phpbb_root_path . 'cache/data_global.php'); - cache_moderators(); - - // And finally, add a note to the log - add_log('admin', 'LOG_INSTALL_CONVERTED', $convert->convertor_data['forum_name'], $config['version']); - - $url = $this->p_master->module_url . "?mode={$this->mode}&sub=final"; + $url = $this->save_convert_progress('&final_jump=1'); $template->assign_vars(array( - 'L_SUBMIT' => $user->lang['FINAL_STEP'], + 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], 'U_ACTION' => $url, )); @@ -1506,26 +1443,7 @@ class install_convert extends module $sync_batch -= $batch_size; } - $step = '&sync_batch=' . $sync_batch; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); - - $url = $this->p_master->module_url . "?mode=$this->mode&sub=in_progress&tag={$convert->convertor_tag}$step"; + $url = $this->save_convert_progress('&sync_batch=' . $sync_batch); $template->assign_vars(array( 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], @@ -1537,7 +1455,94 @@ class install_convert extends module } /** - * This function marks the end of conversion (jump=1) + * Save the convertor status + */ + function save_convert_progress($step) + { + global $convert; + + // Save convertor Status + set_config('convert_progress', serialize(array( + 'step' => $step, + 'table_prefix' => $convert->src_table_prefix, + 'tag' => $convert->convertor_tag, + )), true); + + set_config('convert_db_server', serialize(array( + 'dbms' => $convert->src_dbms, + 'dbhost' => $convert->src_dbhost, + 'dbport' => $convert->src_dbport, + 'dbname' => $convert->src_dbname, + )), true); + + set_config('convert_db_user', serialize(array( + 'dbuser' => $convert->src_dbuser, + 'dbpasswd' => $convert->src_dbpasswd, + )), true); + + return $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}$step"; + } + + /** + * Finish conversion, the last function to be called. + */ + function finish_conversion() + { + global $db, $phpbb_root_path, $convert, $config, $user, $template; + + $db->sql_query('DELETE FROM ' . CONFIG_TABLE . " + WHERE config_name = 'convert_progress' + OR config_name = 'convert_options' + OR config_name = 'convert_db_server' + OR config_name = 'convert_db_user'"); + $db->sql_query('DELETE FROM ' . SESSIONS_TABLE); + + @unlink($phpbb_root_path . 'cache/data_global.php'); + cache_moderators(); + + // And finally, add a note to the log + add_log('admin', 'LOG_INSTALL_CONVERTED', $convert->convertor_data['forum_name'], $config['version']); + + $url = $this->p_master->module_url . "?mode={$this->mode}&sub=final"; + + $template->assign_vars(array( + 'L_SUBMIT' => $user->lang['FINAL_STEP'], + 'U_ACTION' => $url, + )); + + $this->meta_refresh($url); + return; + } + + /** + * This function marks the steps after syncing + */ + function final_jump($final_jump) + { + global $template, $user, $src_db, $same_db, $db, $phpbb_root_path, $phpEx, $config, $cache; + global $convert; + + $template->assign_block_vars('checks', array( + 'S_LEGEND' => true, + 'LEGEND' => $user->lang['PROCESS_LAST'], + )); + + if ($final_jump == 1) + { + update_topics_posted(); + + $template->assign_block_vars('checks', array( + 'TITLE' => $user->lang['UPDATE_TOPICS_POSTED'], + 'RESULT' => $user->lang['DONE'], + )); + + $this->finish_conversion(); + return; + } + } + + /** + * This function marks the steps before syncing (jump=1) */ function jump($jump, $last_statement) { @@ -1570,28 +1575,10 @@ class install_convert extends module )); $last_statement++; - $step = '&jump=1&last=' . $last_statement; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); + $url = $this->save_convert_progress('&jump=1&last=' . $last_statement); $percentage = ($last_statement == 0) ? 0 : floor(100 / (sizeof($convert->convertor['execute_last']) / $last_statement)); $msg = sprintf($user->lang['STEP_PERCENT_COMPLETED'], $last_statement, sizeof($convert->convertor['execute_last']), $percentage); - $url = $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}$step"; $template->assign_vars(array( 'L_SUBMIT' => $user->lang['CONTINUE_LAST'], @@ -1667,26 +1654,7 @@ class install_convert extends module 'RESULT' => $user->lang['DONE'], )); - $step = '&jump=2'; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); - - $url = $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}$step"; + $url = $this->save_convert_progress('&jump=2'); $template->assign_vars(array( 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], @@ -1711,66 +1679,8 @@ class install_convert extends module 'RESULT' => $user->lang['DONE'], )); - $step = '&jump=3'; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); - - $url = $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}$step"; - - $template->assign_vars(array( - 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'], - 'U_ACTION' => $url, - )); - - $this->meta_refresh($url); - return; - } - - if ($jump == 3) - { - update_topics_posted(); - - $template->assign_block_vars('checks', array( - 'TITLE' => $user->lang['UPDATE_TOPICS_POSTED'], - 'RESULT' => $user->lang['DONE'], - )); - // Continue with synchronizing the forums... - $step = '&sync_batch=0'; - - // Save convertor Status - set_config('convert_progress', serialize(array( - 'step' => $step, - 'table_prefix' => $convert->src_table_prefix, - 'tag' => $convert->convertor_tag, - )), true); - set_config('convert_db_server', serialize(array( - 'dbms' => $convert->src_dbms, - 'dbhost' => $convert->src_dbhost, - 'dbport' => $convert->src_dbport, - 'dbname' => $convert->src_dbname, - )), true); - set_config('convert_db_user', serialize(array( - 'dbuser' => $convert->src_dbuser, - 'dbpasswd' => $convert->src_dbpasswd, - )), true); - - $url = $this->p_master->module_url . "?mode={$this->mode}&sub=in_progress&tag={$convert->convertor_tag}$step"; + $url = $this->save_convert_progress('&sync_batch=0'); $template->assign_vars(array( 'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],