1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-06 22:45:02 +02:00

- change conversion to process dotted topics after syncing (else some informations needed are wrong or do not exist at all). This also adds the ability to shift some operations to the very end after syncing.

- remember entered register data when changing the default language.


git-svn-id: file:///svn/phpbb/trunk@7118 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2007-03-04 14:31:07 +00:00
parent c6ef0181e3
commit 567b01302b
4 changed files with 143 additions and 211 deletions

View File

@ -249,8 +249,11 @@ class acp_main
}
unset($posted);
if (sizeof($sql_ary))
{
$db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
}
}
add_log('admin', 'LOG_RESYNC_POST_MARKING');
break;

View File

@ -1934,8 +1934,11 @@ function update_topics_posted()
}
unset($posted);
if (sizeof($sql_ary))
{
$db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
}
}
}
/**

View File

@ -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) ? '<input type="hidden" name="confirm_id" value="' . $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) ? '<input type="hidden" name="confirm_id" value="' . $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))
);
}

View File

@ -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&amp;sub=intro&amp;new_conv=1",
'U_CONTINUE_ACTION' => $this->p_master->module_url . "?mode=$mode&amp;sub=in_progress&amp;tag={$options['tag']}{$options['step']}",
'U_NEW_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=intro&amp;new_conv=1",
'U_CONTINUE_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=in_progress&amp;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&amp;sub=settings&amp;tag=" . $convertors[$index]['tag'],
'U_CONVERT' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=settings&amp;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&amp;sub=in_progress&amp;tag=$convertor_tag",
'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=in_progress&amp;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&amp;sub=settings&amp;tag=$convertor_tag",
'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=settings&amp;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&amp;sub=in_progress&amp;tag={$convert->convertor_tag}",
'U_ACTION' => $this->p_master->module_url . "?mode={$this->mode}&amp;sub=in_progress&amp;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)) . '<br /><br />' . $user->lang['CHECK_TABLE_PREFIX'], __LINE__, __FILE__);
}
$step = '&amp;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('&amp;confirm=1');
$msg = $user->lang['PRE_CONVERT_COMPLETE'];
if ($convert->convertor_data['author_notes'])
{
$msg .= '</p><p>' . sprintf($user->lang['AUTHOR_NOTES'], $convert->convertor_data['author_notes']);
}
$url = $this->p_master->module_url . "?mode=$mode&amp;sub=in_progress&amp;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 = '&amp;current_table=' . $current_table . '&amp;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('&amp;current_table=' . $current_table . '&amp;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&amp;sub=in_progress&amp;tag={$convert->convertor_tag}$step";
$template->assign_vars(array(
'L_MESSAGE' => $msg,
'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],
@ -1392,26 +1363,7 @@ class install_convert extends module
}
// Process execute_last then we'll be done
$step = '&amp;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&amp;sub=in_progress&amp;tag={$convert->convertor_tag}$step";
$url = $this->save_convert_progress('&amp;jump=1');
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['FINAL_STEP'],
@ -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,7 +1428,67 @@ class install_convert extends module
if ($sync_batch >= $primary_max)
{
$sync_batch = -1;
$url = $this->save_convert_progress('&amp;final_jump=1');
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],
'U_ACTION' => $url,
));
$this->meta_refresh($url);
return;
}
else
{
$sync_batch -= $batch_size;
}
$url = $this->save_convert_progress('&amp;sync_batch=' . $sync_batch);
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],
'U_ACTION' => $url,
));
$this->meta_refresh($url);
return;
}
/**
* 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}&amp;sub=in_progress&amp;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'
@ -1501,43 +1513,36 @@ class install_convert extends module
$this->meta_refresh($url);
return;
}
else
/**
* This function marks the steps after syncing
*/
function final_jump($final_jump)
{
$sync_batch -= $batch_size;
}
global $template, $user, $src_db, $same_db, $db, $phpbb_root_path, $phpEx, $config, $cache;
global $convert;
$step = '&amp;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&amp;sub=in_progress&amp;tag={$convert->convertor_tag}$step";
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],
'U_ACTION' => $url,
$template->assign_block_vars('checks', array(
'S_LEGEND' => true,
'LEGEND' => $user->lang['PROCESS_LAST'],
));
$this->meta_refresh($url);
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 end of conversion (jump=1)
* 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 = '&amp;jump=1&amp;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('&amp;jump=1&amp;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}&amp;sub=in_progress&amp;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 = '&amp;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}&amp;sub=in_progress&amp;tag={$convert->convertor_tag}$step";
$url = $this->save_convert_progress('&amp;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 = '&amp;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}&amp;sub=in_progress&amp;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 = '&amp;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}&amp;sub=in_progress&amp;tag={$convert->convertor_tag}$step";
$url = $this->save_convert_progress('&amp;sync_batch=0');
$template->assign_vars(array(
'L_SUBMIT' => $user->lang['CONTINUE_CONVERT'],