79 lines
2.7 KiB
PHP
79 lines
2.7 KiB
PHP
|
<?php
|
||
|
|
||
|
$config = loadconfig();
|
||
|
$db_source = new db_mysql($config['source']);
|
||
|
$db_source->connect();
|
||
|
|
||
|
$db_target = new db_mysql($config['target']);
|
||
|
$db_target->connect();
|
||
|
|
||
|
$db_uc = new db_mysql($config['ucenter']);
|
||
|
if($setting['config']['ucenter']) {
|
||
|
$db_uc->connect();
|
||
|
}
|
||
|
|
||
|
$process = load_process('main');
|
||
|
if(empty($process)) {
|
||
|
showmessage("请首先选择转换程序", "index.php?action=select&source=$source");
|
||
|
}
|
||
|
|
||
|
$prg = getgpc('prg');
|
||
|
|
||
|
$prg_dir['tables'] = DISCUZ_ROOT.'./source/'.$source.'/table/';
|
||
|
$prg_dir['start'] = DISCUZ_ROOT.'./source/'.$source.'/';
|
||
|
$prg_dir['steps'] = DISCUZ_ROOT.'./source/'.$source.'/';
|
||
|
|
||
|
$prg_done = 0;
|
||
|
$prg_next = '';
|
||
|
$prg_total = $prg_total = count($process['tables']) + count($process['start']) + count($process['steps']);
|
||
|
|
||
|
foreach (array('start', 'tables', 'steps') as $program) {
|
||
|
if(!empty($process[$program]) && !$process[$program.'_is_end']) {
|
||
|
foreach ($process[$program] as $k => $v) {
|
||
|
if($v) {
|
||
|
$prg_done ++;
|
||
|
} elseif ($prg_next == '') {
|
||
|
$prg_next = $k;
|
||
|
}
|
||
|
}
|
||
|
if($prg_next) {
|
||
|
if(empty($prg) || !file_exists($prg_dir[$program].$prg)) {
|
||
|
$prg = $prg_next;
|
||
|
}
|
||
|
$prg_done ++;
|
||
|
|
||
|
list($rday, $rhour, $rmin, $rsec) = remaintime(time() - $process['timestart']);
|
||
|
$stime = gmdate('Y-m-d H:i:s', $process['timestart'] + 3600* 8);
|
||
|
$timetodo = "升级开始时间:<strong>$stime</strong>, 升级程序已经执行了 <strong>$rday</strong>天 <strong>$rhour</strong>小时 <strong>$rmin</strong>分 <strong>$rsec</strong>秒";
|
||
|
$timetodo .= "<br><br>目前正在执行转换程序( $prg_done / $prg_total ) <strong>$prg</strong>,转换过程中需要多次跳转,请勿关闭浏览器。";
|
||
|
$timetodo .= "<br><br>如果程序中断或者需要重新开始当前程序,请点击 (<a href=\"index.php?a=convert&source=$source&prg=$prg\">重新开始</a>)";
|
||
|
|
||
|
showtips($timetodo);
|
||
|
if(file_exists($prg_dir[$program].$prg)) {
|
||
|
define('PROGRAM_TYPE', $program);
|
||
|
require $prg_dir[$program].$prg;
|
||
|
save_process_main($prg);
|
||
|
showmessage("转换程序 $prg 执行完毕, 现在跳转到下一个程序", "index.php?a=convert&source=$source", null, 500);
|
||
|
} else {
|
||
|
showmessage('数据转换中断! 无法找到转换程序 '.$prg);
|
||
|
}
|
||
|
} else {
|
||
|
$process[$program.'_is_end'] = 1;
|
||
|
save_process('main', $process);
|
||
|
}
|
||
|
} else {
|
||
|
$prg_done = $prg_done + count($process[$program]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
showmessage('转换程序全部运行完毕', "index.php?action=finish&source=$source");
|
||
|
|
||
|
function save_process_main($prg = '') {
|
||
|
global $process;
|
||
|
if(defined('PROGRAM_TYPE')) {
|
||
|
$prg = empty($prg) ? $GLOBALS['prg'] : $prg;
|
||
|
$process[PROGRAM_TYPE][$prg] = 1;
|
||
|
}
|
||
|
save_process('main', $process);
|
||
|
}
|
||
|
?>
|