﻿ /*
 * 数据库备份还原插件
 * Date: 2014-11-25
 * Author: 枫LT <957987132@qq.com> <php爱好者>
 * Company:合肥多元速网络有限公司 <www.doysu.com>
 */


鸣谢：
1.首先感谢Thinkphp这么优秀的php框架
2.第二感谢OneThink强大的内容管理系统框架

来源：
1.本数据库备份还原插件是扣取的OneThink中的数据库备份还原；
2.扣取后做了适当的修改，让其适合所有后台
3.本插件希望对于新手在开发系统时有些帮助

插件更新：
1.首先把插件中所有的可配置参数都整合到config中，做成可配置插件；
2.在Database.class.php控制器中加了数据库备份目录判断，没有目录自动创建目录并赋予可读写权限；
3.修复了当不存在备份文件夹时点击还原数据库报错问题；


使用方法详细步骤：

@第一：本控制器依靠config中的配置运行，须在config中新增配置：
		'DB_PATH_NAME'=> 'db',        //备份目录名称,主要是为了创建备份目录；
		'DB_PATH'     => './db/',     //数据库备份路径必须以 / 结尾；
		'DB_PART'     => '20971520',  //该值用于限制压缩后的分卷最大长度。单位：B；建议设置20M
		'DB_COMPRESS' => '1',         //压缩备份文件需要PHP环境支持gzopen,gzwrite函数        0:不压缩 1:启用压缩
		'DB_LEVEL'    => '9',         //压缩级别   1:普通   4:一般   9:最高

@第二：本控制器依赖ThinkPHP/Library/OT/Database.class.php 需加入该文件到对应位置
@第三：在Application/Common/function.php里面加个format_bytes()函数；
			/**
			 * 格式化字节大小
			 * @param  number $size      字节数
			 * @param  string $delimiter 数字和单位分隔符
			 * @return string            格式化后的带单位的大小
			 *
			function format_bytes($size, $delimiter = '') {
				$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
				for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;
				return round($size, 2) . $delimiter . $units[$i];
			}
@第四：模版文件，Home/View/Database下面的2个文件 export.html备份数据库  import.html还原数据库
@第五：模版文件中需jquery支持（模版中有ajax），并且要想实现模版中的多选需引用以下js：
 		 <script>
 			;$(function(){
				//全选的实现
				$(".check-all").click(function(){
					$(".ids").prop("checked", this.checked);
				});
				$(".ids").click(function(){
					var option = $(".ids");
					option.each(function(i){
						if(!this.checked){
							$(".check-all").prop("checked", false);
							return false;
						}else{
							$(".check-all").prop("checked", true);
						}
					});
				});
			
			});
         </script>
@第六：引用方法：<a href="{:U('Database/index',array('type'=>'export'))}">备份数据库</a>
	             <a href="{:U('Database/index',array('type'=>'import'))}">还原数据库</a>
