<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<SCRIPT>
function checkclick(msg){
if(confirm(msg)){
event.returnValue=true;
}else{
event.returnValue=false;
}
}
function showsubmenu(ss,ii,aa)
{
var menuobjedt=document.getElementById(ss);
if (menuobjedt)
{
 if (menuobjedt.style.display=="none") 
  {menuobjedt.style.display="";
}
 else
  {menuobjedt.style.display="none"; 
   }
}
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript"> 
function checkAll(str) 
{ 
  var a = document.getElementsByName(str); 
  var n = a.length; 
  for (var i=0; i<n; i++) 
  a[i].checked = window.event.srcElement.checked; 
} 
function checkItem(str) 
{ 
  //var e = window.event.srcElement; 
  var alltable = eval("document.hrong."+ str); 
  if (window.event.srcElement.checked) 
  { 
    var a = document.getElementsByName(window.event.srcElement.name); 
    alltable.checked = true; 
    for (var i=0; i<a.length; i++) 
    { 
      if (!a[i].checked){ alltable.checked = false; break;} 
    } 
  } 
  else alltable.checked = false; 
} 
function dobackup()
{
	var a = document.getElementsByName('onetable[]'); 
	var mark = false;     
    for (var i=0; i<a.length; i++) 
    { 
      if (a[i].checked){ mark = true; } 
    } 
	if( !mark )
	{
		alert('至少要选中一个要备份的数据表');
		return false;
	}
	if( document.hrong.fenjuan.checked )
	{
		if( document.hrong.juansize.value == "" ) 
		{
			alert('请填写分卷的大小');
			return false;
		}
		if( document.hrong.juansize.value < 100 ) 
		{
			alert('分卷的数值太小');
			document.hrong.juansize.value = 100;
			return false;
		}
	}
	
	
	
	document.hrong.submit();
}
function JHshNumberText()
{
	if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
	|| (window.event.keyCode == 13) || (window.event.keyCode == 46) 
	|| (window.event.keyCode == 45)))
	{
		window.event.keyCode = 0 ;
	}
} 
function fenjuancheck()
{
	var a = document.getElementById('local'); 
	if( a.style.display == 'none' ) a.style.display = '';
	else a.style.display = 'none';
	var b = document.getElementById('filelocal'); 
	if( b.style.display == 'none' ) b.style.display = '';
	else b.style.display = 'none';
	var c = document.getElementById('server'); 
	c.checked = true;
}
function restore(weizhi)
{	
	if( weizhi == 'server' )
	{
		document.restoreform.serverfile.disabled = false;
		document.restoreform.localfile.disabled = true;
	}
	else
	{
		document.restoreform.serverfile.disabled = true;
		document.restoreform.localfile.disabled = false;
	}
}
function dorestore()
{
	if( !document.restoreform.serverfile.disabled )
	{
		if( document.restoreform.serverfile.value == "" )
		{
			alert('请从服务器端选择要恢复的文件');
			return false;
		}
	}
	if( !document.restoreform.localfile.disabled )
	{
		if( document.restoreform.localfile.value == "" )
		{
			alert('请从本地机器选择要恢复的文件');
			return false;
		}
	}
	document.restoreform.submit();
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript" src=imagefiles/cal.js></SCRIPT>
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
-->
</style>
<br>
<table style="BORDER-COLLAPSE: collapse" borderColor=#999999 cellPadding=0 width="100%" border=0>
<tr class=titlefont>
                <td height="25" colspan="7" align="left" >&nbsp;&nbsp;<a href="manage_db.php">备份数据表</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="manage_db.php?action=restore">恢复数据表</a></td>
  </tr>
    <tr > 
    <td valign="middle">&nbsp;</td>
  </tr>
 {/ if $action == "default"/}
  <tr > 
    <td valign="middle"><form id="form2" name="hrong" method="post" action="">
      <table style="BORDER-COLLAPSE: collapse" bordercolor="#93C2DC" cellpadding="2" width="100%" border="1">
        <tr class="titlefont">
          
          <td width="33%">数据表名</td>
          <td width="13%">记录数</td>
          <td width="14%">表大小</td>
          <td width="10%">优化</td>
          <td width="10%">修复</td>
          <td width="20%">说明(最后更改时间)</td>
        </tr>
        {/foreach item=Item key=Key from=$TableInfo/} {/if $Key%2 == 0/} <tr    bgcolor="#e9e9e9" onmousedown=bgColor='#9DC0D8'  onMouseOver=bgColor='#9DC0D8' onMouseOut=bgColor='#e9e9e9' height=24> 
    {/else/} 
  <tr bgcolor="#f5f5f5" onmousedown="bgColor='#9DC0D8'"  onmouseover="bgColor='#9DC0D8'" onmouseout="bgColor='#f5f5f5'" height="24"> {//if/}
  
    <td >&nbsp;&nbsp;&nbsp;&nbsp;<input name="onetable[]" type="checkbox" id="{/$Item.Name/}" onclick="checkItem('alltable')" value="{/$Item.Name/}"/>&nbsp;&nbsp;<label for="{/$Item.Name/}">{/$Item.Name/}{/$Item.CName/}</label></td>
    <td align="right">&nbsp;{/$Item.Rows/}</td>
    <td align="right">&nbsp;{/$Item.Size/}</td>
    <td align="center">&nbsp;<a href="?table={/$Item.Name/}&amp;action=optimize">优化</a></td>
    <td align="center"><a href="?table={/$Item.Name/}&amp;action=repair">修复</a></td>
    <td align="center">&nbsp;{/$Item.Check_time/}</td>
  </tr>
        {//foreach/}
  <tr bgcolor="#f5f5f5" height="24">
    <td align="center" ><strong>总览</strong></td>
    <td align="right"><strong>{/$TotalRows/}</strong></td>
    <td align="right"><strong>{/$TotalSize/}</strong></td>
    <td align="center"><strong><a href="#" onclick="if (confirm('确认全部优化数据？该操作在数据量比较大的情况下会比较缓慢,建议在访问人数比较小的时间段进行!'))location.href='?action=optimizeall'">全部优化</a></strong></td>
    <td align="center"><strong><a href="#" onclick="if (confirm('确认全部修复数据？该操作在数据量比较大的情况下会比较缓慢,建议在访问人数比较小的时间段进行!'))location.href='?action=repairall'">全部修复</a></strong></td>
    <td align="center">&nbsp;</td>
  </tr>
      </table>
      <br>
        <table style="BORDER-COLLAPSE: collapse" bordercolor="#93C2DC" cellpadding="2" 
      width="100%" border="1">
          <tr class="titlefont">
            <td height="26">数据库备份功能</td>
          </tr>
          <tr>
            <td height="26"><input name="alltable" type="checkbox"  id="allcheck" onclick="checkAll('onetable[]')" value="全选" />
&nbsp;
<label for="allcheck">选择要备份的数据表
<input name="action" type="hidden" id="action" value="dobackup" />
</label>
<input name="p" type="hidden" id="p" value="{/$p|default:'1'/}" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="fenjuan" value="1" id="fenjuan" onclick="fenjuancheck()"/>
<label for="fenjuan">分卷备份</label>
&nbsp;&nbsp;&nbsp;&nbsp;卷大小：
<input name="juansize" type="text" id="juansize" size="6" onkeypress="JHshNumberText()" />
KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input name="weizhi" type="radio" id="server" value="server" checked="checked"/>
<label for="server">备份到服务器</label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="weizhi" value="local" id="local" />
<label for="local" id="filelocal">备份到本地</label>
&nbsp;&nbsp;&nbsp;
<input type="button" name="button" value="开始备份" onclick="if(confirm('确认备份数据？该操作在数据量比较大的情况下会比较缓慢,建议在访问人数比较小的时间段进行!'))dobackup()"/></td>
          </tr>
        </table>
    </form></td>
  </tr>
  <tr > 
    <td height="30" valign="bottom"><div class="pagelink">{/$PageLinks/}</div></td>
  </tr>
  {/elseif $action == "restore"/}
  <tr >
    <td valign="middle">
	
	<form action="" method="post" enctype="multipart/form-data" name="restoreform" id="restoreform">
      <table style="BORDER-COLLAPSE: collapse" bordercolor="#93C2DC" cellpadding="2" 
      width="100%" border="1">
        <tr class="titlefont_02">
          <td height="26" colspan="2">&nbsp;数据库恢复功能</td>
        </tr>
        <tr>
          <td colspan="2"><ul>
            <li>本功能在恢复备份数据的同时，将全部覆盖原有数据，请确定是否需要恢复，以免造成数据损失</li>
            <li>              数据恢复功能只能恢复由phpstat导出的数据文件，其他软件导出格式可能无法识别</li>
            <li>              从本地恢复数据需要服务器支持文件上传并保证数据尺寸小于允许上传的上限，否则只能使用从服务器恢复</li>
            <li>              如果您使用了分卷备份，只需手工导入<span class="STYLE1">每组的卷1</span>，其他数据文件会由系统自动导入。为了确保数据准确，每次都会从每<span class="STYLE1">组</span>的卷1开始。</li>
            <li>备份文件分卷格式：<span class="STYLE1">数据表前缀</span>_<span class="STYLE1">年月日</span>_<span class="STYLE1">组</span>_<span class="STYLE1">卷</span>.sql，按照日期划分文件的分组，同一日期为同一属性备份文件，只有全部导入同一日期的文件，数据才会完整。</li>
          </ul></td>
          </tr>
        <tr>
            <td width="19%" height="26">&nbsp;&nbsp;&nbsp;&nbsp;
              <input name="weizhi" type="radio" id="server" onclick="restore('server')" value="server" checked="checked"/>
              <label for="server">从服务器端</label></td><td width="81%">
		  <select name="serverfile" id="forserver">
		  {/foreach item=Item key=Key from=$files/}
		  <option value='{/$Item.name/}'>{/$Item.name/}</option>
		  {//foreach/}
          </select>&nbsp;&nbsp;文件总计大小：{/$filesize/}
          </td>
        </tr>
        <tr>
          <td height="26">
              &nbsp;&nbsp;&nbsp;&nbsp;
              <input type="radio" name="weizhi" value="local"  id="local"  onclick="restore('local')"/>
            <label for="local">从本地机器</label></td>
          <td><input type="file" name="localfile"  id="forlocal" disabled="disabled"/>
            <input name="action" type="hidden" id="action" value="dorestore" /></td>
        </tr>
      </table>
      <p align="center">
        <input name="button2" type="button" id="button" value="恢复备份" onclick="dorestore()"/>
      </p>
      <table style="BORDER-COLLAPSE: collapse" bordercolor="#93C2DC" cellpadding="2" 
      width="100%" border="1">
        <tr class="titlefont">
          <td width="24%">文件名</td>
		  <td width="20%">时间</td>
		  <td width="15%">类型</td>
		  <td width="12%">总大小</td>
		  <td width="11%">卷号</td>
		  <td width="18%">&nbsp;</td>
          </tr>
         {/foreach item=Item key=Key from=$files/} 
		 <tr bgcolor="#dddddd"  height="26" onClick="showsubmenu('submenuboard{/$Key/}','subimgboard{/$Key/}','aimgboard{/$Key/}','bookopen.gif','bookclose.gif')"> 
          <td width="24%">&nbsp;{/$Item.name/}</td>
          <td width="20%" align="center">&nbsp;{/$Item.time/}</td>
          <td width="15%" align="center">&nbsp;{/$Item.type/}</td>
		  <td width="12%" align="right">&nbsp;{/$Item.size/}</td>
		  <td width="11%" align="center">&nbsp;{/$Item.v/}</td>
		  <td width="18%">&nbsp;[{/ if $Item.size1 >= 204800/}<a href="javascript:alert('文件大于200k，不支持在线浏览')" >浏览</a>{/else/}<a href="{/$Item.url/}" target="_blank">浏览</a>{//if/}]&nbsp;&nbsp;[<a href="javascript:if(confirm('{/if $Item.v != ''/}确实要导入该组全部备份文件吗?系统会自动从该组卷1开始恢复。{/else/}确实要导入该备份文件吗?{//if/}')) location='?serverfile={/$Item.name/}&action=dorestore'" >导入</a>]&nbsp;&nbsp;[<a href="javascript:if(confirm('{/if $Item.v != ''/}确实要删除该组全部备份文件吗?该操作不可逆转!{/else/}确实要删除该备份文件吗?该操作不可逆转!{//if/}')) location='?serverfile={/$Item.dnum/}&action=delfile'">删除</a>]&nbsp;&nbsp;[<a href="javascript:if(confirm('确实要下载该部备份文件吗?')) location='?serverfile={/$Item.name/}&action=down'">下载</a>]</td>
        </tr>
		{/if $Item.sf != ""/}		
  <tr bgcolor="#f5f5f5" onmousedown="bgColor='#9DC0D8'"  onmouseover="bgColor='#9DC0D8'" onmouseout="bgColor='#f5f5f5'" height="26" style="display:none" id=submenuboard{/$Key/}> 
          <td colspan="6">
		  <table width="100%" height="24" border="0" cellpadding="0" cellspacing="0">
		  {/foreach item=Itemsf from=$Item.sf/} 
  <tr bgcolor="#f5f5f5" onmousedown="bgColor='#9DC0D8'"  onmouseover="bgColor='#9DC0D8'" onmouseout="bgColor='#f5f5f5'" height="24"> 
          <td width="24%" height="26">&nbsp;{/$Itemsf.name/}</td>
          <td width="20%" height="26" align="center">&nbsp;{/$Itemsf.time/}</td>
          <td width="15%" height="26" align="center">&nbsp;{/$Itemsf.type|default:'全部备份'/}</td>
		  <td width="12%" height="26" align="right">{/$Itemsf.size/}</td>
		  <td width="11%" height="26" align="center">&nbsp;{/$Itemsf.v/}</td>
		  <td width="18%" height="26">&nbsp;&nbsp;[{/ if $Item.size1 >= 204800/}<a href="javascript:alert('文件大于200k，不支持在线浏览')" >浏览</a>{/else/}<a href="{/$Item.url/}" target="_blank">浏览</a>{//if/}]&nbsp;&nbsp;[<a href="javascript:if(confirm('确实要下载该部备份文件吗?')) location='?serverfile={/$Item.name/}&action=down'">下载</a>]</td>
        </tr>{//foreach/}
          </table>
		  </td>
          </tr>
		  {//if/}
		{//foreach/}
      </table>
      <p align="center">&nbsp;</p>
	</form>    </td>
  </tr>
  <tr >
    <td valign="middle">&nbsp;</td>
  </tr>
  {/else if $action == "redorestore"/}
  <tr >
    <td valign="middle"><table style="BORDER-COLLAPSE: collapse" bordercolor="#93C2DC" cellpadding="2" 
      width="100%" border="1">
      <tr class="titlefont_02">
        <td width="100%" height="26">数据库恢复结果</td>
      </tr>
      <tr >
        <td height="26">{/foreach item=Item key=Key from=$msgs/}
		  {/$Item/}<br>
		  {//foreach/}</td>
      </tr>

    </table></td>
  </tr>
  <tr >
    <td valign="middle">&nbsp;</td>
  </tr>
  {//if/}
  <tr > 
    <td valign="middle"><strong>该操作将删除选择日期以前的历史数据</strong><strong>，不包括选择日期</strong>，<strong>执行后无法恢复</strong>    </td>
  </tr>
  <tr > 
    <td valign="middle"><form name="form1" method="post" action="">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr> 
            <td width="20%" valign="bottom"> 
              <SCRIPT language=javascript>
//有一些属性，可以灵活的定制。
//事实上直接到uc.js中修改默认属性值使用起来会更方便一些，里面有注释。
  var date2 = new UncCalendar ();
  date2.inputName = "date"; //input的name。
  date2.inputValue = "lastMonth";  //你会看到，input中将显示客户机系统当前时间。
  date2.inputSize = 11;  //input的size
  date2.inputClass = "";  //input的class，这样你就能自己控制input的样式。
  date2.color = "#000080";  //选择按钮、面板的边框以及日历中字的颜色。
  date2.bgColor = "#EEEEFF";  //选择按钮、面板的背景色。
  date2.buttonWidth = 60;  //按钮宽度
  date2.buttonWords = "选择日期";  //按钮显示的文字。
  date2.canEdits = true;  //input是否可以输入
  date2.hidesSelects = true;  //显增日期选择面板时是否隐藏页面中的select控件。
  date2.display();
</SCRIPT> </td>
            <td width="80%"> 
              <input type="submit" name="Submit2" onclick="checkclick('确认清除历史数据？该操作不会用删除红色文字说明的数据表【*_users，*_user_site，*_site】')" value="清除历史数据"> 
              <input name="action" type="hidden" id="action" value="deloldinfo"></td>
            <td width="0%">&nbsp;</td>
          </tr>
        </table>
      </form></td>
  </tr>
  <tr > 
    <td valign="middle">&nbsp;</td>
  </tr>
  <tr > 
    <td valign="middle"><strong>该操作将删除全部的历史数据，执行后无法恢复</strong></td>
  </tr>
  <tr > 
    <td valign="middle"><form name="form1" method="post" action="">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr> 
            <td width="20%" valign="bottom"><input type="submit" name="Submit23" onclick="checkclick('确认清除全部历史数据？该操作不会用删除红色文字说明的数据表【*_users，*_user_site，*_site】')" value="清除全部历史数据">            </td>
            <td width="80%"> 
              <input name="action" type="hidden" id="action" value="delallinfo"></td>
            <td width="0%">&nbsp;</td>
          </tr>
        </table>
      </form></td>
  </tr>
  
  <tr > 
    <td valign="middle">&nbsp;</td>
  </tr>
  <tr > 
    <td valign="middle"><strong>智能一键删除数据库（仅删除与统计有关的数据表，执行后无法恢复）</strong></td>
  </tr>
  <tr > 
    <td valign="middle"><form id="form1" name="form1" method="post" action="">
      <input type="submit" name="Submit2322" onclick="checkclick('确认一键删除数据库？')" value="智能一键删除数据库" />
        <input name="action" type="hidden" id="action" value="delalltable" />
    </form>    </td>
  </tr>
  <tr >
    <td valign="middle">&nbsp;</td>
  </tr>
  <tr >
    <td valign="middle">  </td>
  </tr>
</table>

