<?
$thisprog="forumbackup.php";
$forumfile="datafile/forumdata.php";
require("adminglobal.php");
require("datafile/config.php");

print "<tr><td bgcolor=#80809b colspan=2><font color=#FFFFFF>
            <b>欢迎来到讨论区管理程式 / 论坛数据导入和导出</b>
            </td></tr>";

if (file_exists($forumfile)) {
	$forumdata=file($forumfile);
	$count=count($forumdata);
}

if (empty($action)) {

	$forumonly="";
	for($i=0; $i<$count; $i++) {
	  $detail=explode("|",$forumdata[$i]);
	  if ($detail[0]!="category") $forumonly.="<option value=\"$detail[3]\">$detail[1]</option>";
	}
	$forumonly.="</select>";

print <<<EOT
    <tr>
    <td bgcolor=#EEEEEE align=center colspan=2>
    <b>请选择动作</b>
    </td>
    </tr>          
                
    <tr>
    <td bgcolor=#FFFFFF colspan=2><br>$tab_top
    本程式使得文本论坛数据可以象数据库一样方便的管理。<br>导出时不会在本地生成文件造成安全问题和还要FTP的麻烦，<br>在导入恢复时又不会破坏现有增加数据。
    $tab_bottom <br><br>
    <b>导出论坛文章数据</b><br><br><form method=POST action="dumpforum.php">
    $tab_top
    主要可以方便转移论坛数据，这样即使把所有的帖子都贴到朋友的论坛里也很方便，搬家时最好了。<br>
    <br>请选择需要导出数据论坛 <select name="id">$forumonly <input type=submit value="提 交">
    $tab_bottom
    </form>
    <b>导入论坛数据</b><br><br>
<form method="post" action="$thisprog" enctype="multipart/form-data"><input type=hidden name="action" value="restore">
    $tab_top
    转移论坛后，或者论坛数据被破坏，或者想POST一大堆文章到此地，就可以使用此功能导入论坛数据。<BR>
<input type="file" name="forum_file"> 导入至<select name="target">$forumonly <input type="submit" value="提 交"><br>
    注意：导入数据不会影响现有论坛数据，在导入完成后请选择<b>重建论坛索引</b>以整理新加入数据
    $tab_bottom
    </form>
    </td>
    </tr>
    </td></tr></table></body></html>
EOT;
	exit;
} else {
	$check=1;
	if(empty($forum_file) || $forum_file == "none" || !ereg("^php[0-9A-Za-z_.-]+$", basename($forum_file))) {$check=0; $reason="请选择文件并导入"; }
	if ($check==1 && !ereg("(\.vib)$",$forum_file_name)) { $check=0; $reason="请确定导入文件由 VIB 管理程序生成"; }
	
	if ($check==1) {
		$forum_file=file($forum_file);
		$count=count($forum_file);
		
		//-----取得新位置----
		if (file_exists("forum$target/list.php")) {
		  $minnum=get_next_filename(readfromfile("forum$target/list.php"));
		} else $minnum=1;
		$sum=0;
		
		for ($i=0; $i<$count; $i++) {
			if ($forum_file[$i]=="-post-\n") {
			  while(file_exists("forum$target/f_$minnum")) $minnum++;
			  $postfilename="forum$target/f_$minnum";
			  $fp=fopen($postfilename,"w");
			  $sum++;
			}elseif ($forum_file[$i]=="--u--\n") {
			  $fp=fopen($postfilename.".u","w");
			}elseif ($forum_file[$i]=="-sta-\n") {
			  $fp=fopen($postfilename.".sta","w");
			}else fwrite($fp,$forum_file[$i]);
		}
		fclose($fp);

print <<<EOT
		<tr>
		<td bgcolor=#FFFFFF align=center colspan=2>
		<b>论坛数据导入成功</b><br><br>
		$tab_top
		论坛数据已经导入，	总共导入主题 <b>$sum</b> 个<br><br>
		下面，您应该执行更新操作以整理刚才导入的数据：<br>
		首先 &gt;&gt; <a href="forumfix.php?action=fixindex&target=$target">重建版块索引</a><br>
		然后 &gt;&gt; <a href="forumfix.php?action=updatecount&target=$target">更新文章统计</a>
		$tab_bottom
		</td></tr>
		</td></tr></table></body></html>
EOT;
		exit;
	} else {
	print <<<EOT
	<tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <b>论坛数据导入失败</b><br><br>
	$tab_top
        论坛数据导入失败，详细情况：<br><br>
        $reason <br><br> 
        &gt;&gt; <a href="javascript:history.go(-1)">返回前页</a>
        $tab_bottom 
        </td></tr>
    </td></tr></table></body></html>
EOT;
	exit;
	}
}
function get_next_filename($list) {
global $target;
  $list=explode("\n",$list,11);
  $count=min(count($list),11);
  $filecount=0;
  for ($i=0; $i<$count; $i++) {
    $temp=explode("|",$list[$i]);
    list($nouse,$thiscount)=explode("_",$temp[5]);
    if ($thiscount>$filecount) $filecount=$thiscount;
  }
  $filecount++;
  while (file_exists("forum$target/f_$filecount")) $filecount++;
  return($filecount);
}
