From 567b01302b735c03e596be1b1b7d01261084c62b Mon Sep 17 00:00:00 2001
From: Meik Sievertsen
' . $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'],