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 = "升级开始时间:$stime, 升级程序已经执行了 $rday$rhour小时 $rmin$rsec秒"; $timetodo .= "

目前正在执行转换程序( $prg_done / $prg_total ) $prg,转换过程中需要多次跳转,请勿关闭浏览器。"; $timetodo .= "

如果程序中断或者需要重新开始当前程序,请点击 (重新开始)"; 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); } ?>