<?php
		$iserror = 0;
		
		global $pagetitle,$pagecontent,$tourl,$redirecturl;
		
		date_default_timezone_set('PRC');
		
		@include_once("config.php");
		require_once "include/include.php";
		
		$db = new hon6mysql;
		$db -> mysql_link();
		
		$smartyObj = new mySmarty("admin");
		
		$_getst = new _GSITER();
		$_siter = $_getst->trackPageView();
		
		/*先检查程序是否安装过*/
		if(file_exists(HON6_ROOT."/install.lock")){
				$iserror = 1;
				$pagecontent = "您已经安装过程序，重新安装将删除wap数据库中的数据！重新安装请删除插件目录下的install.lock文件<br/>";
		}
		
		if(@$step == "" && $iserror == 0){
			
				/*显示安装提示信息*/
				$pagetitle = "hon6 杰奇 wap安装系统 首页";
				$pagecontent = "您即将安装HON6杰奇wap组件，本组件代码完全开源，基于杰奇1.7开发，其他版本尚未测试，请确定您的主系统版本与组件所要求版本一致，否则可能导致组件不能正常访问等情况!";
				$pagecontent .= "<p class=\"bg-color-blueDark padding10 fg-color-white\">";
				$pagecontent .= "安装需要注意以下几点：<br/>";
				$pagecontent .= "</p>";
				$pagecontent .= "1.wap组件的存放位置必须在杰奇主目录下!<br/>";
				$pagecontent .= "2.域名可以直接绑定在组件目录也可以通过路径方式访问!<br/>";
				$pagecontent .= "3.需要对目录的读取，写入，修改操作权限<br/>";
				
				$pagecontent .= "<br/>点击下一步开始组件安装步骤<br/>";
				
				$tourl = "?step=1";
			
		}elseif(@$step == "1" && $iserror == 0){
				
				/*检查目录读写权限*/
				$pagetitle = "hon6 杰奇 wap安装系统 第一步";
				$pagecontent = "<h2>第一步，目录权限检查</h2>";
				$pagecontent .= "目录:/cache ".file_mode_info(HON6_ROOT."/cache")."<br/>";
				$pagecontent .= "目录:/include ".file_mode_info(HON6_ROOT."/include")."<br/>";
				$pagecontent .= "目录:/models ".file_mode_info(HON6_ROOT."/models")."<br/>";
				$pagecontent .= "目录:/rewrite_url ".file_mode_info(HON6_ROOT."/rewrite_url")."<br/>";
				$pagecontent .= "目录:/smarty ".file_mode_info(HON6_ROOT."/smarty")."<br/>";
				$pagecontent .= "目录:/smarty_function ".file_mode_info(HON6_ROOT."/smarty_function")."<br/>";
				$pagecontent .= "目录:/templates ".file_mode_info(HON6_ROOT."/templates")."<br/>";
				$pagecontent .= "目录:/templates_c ".file_mode_info(HON6_ROOT."/templates_c")."<br/>";
				$pagecontent .= "四位数字从左到右依次标识 重命名权限，修改权限，写入权限，读取权限，0为无权限，1为有权限，请您根据自己的参数修改，程序需要对每个文件夹有写入和读取权限！<br/>";
				
				$pagecontent .= "<br/>权限检测完毕后，开始下一步检测数据库<br/>";
				
				$tourl = "?step=2";
				
		}elseif(@$step == "2" && $iserror == 0){
			
				/*检测是否包含数据表*/
				$tables = $db->list_tables();
				
				foreach($tables as $key => $val){
						$newtables[$key] = $val["0"];
				}
				
				$arraytables = array("0"=>"hon6_sid","1"=>"hon6_session","2"=>"user_daka_config","3"=>"user_daka_days");
				
				$pagetitle = "hon6 杰奇 wap安装系统 第二步";
				
				$pagecontent = "<h2>第二步，数据库检查</h2>";
				
				foreach($arraytables as $key => $val){
						if(in_array($val,$newtables)){
								$pagecontent .= "数据表{$val}已经存在，重新安装将删除已有数据！<br/>";
						}else{
								$pagecontent .= "数据表{$val}不存在，可以直接安装！<br/>";
						}
				}
				
				$pagecontent .= "<br/>数据库检测完毕后，开始下一步写入数据库<br/>";
				
				$tourl = "?step=3";
			
		}elseif(@$step == "3" && $iserror == 0){
				
				/*检测是否包含数据表*/
				$tables = $db->list_tables();
				
				foreach($tables as $key => $val){
						$newtables[$key] = $val["0"];
				}
				
				$arraytables = array("0"=>"hon6_sid","1"=>"hon6_session","2"=>"user_daka_config","3"=>"user_daka_days");
				
				$pagetitle = "hon6 杰奇 wap安装系统 第三步";
				
				$pagecontent = "<h2>第三步，数据库写入</h2>";
				
				foreach($arraytables as $key => $val){
						if(in_array($val,$newtables)){
								if($db->query("DROP TABLE {$val}")){
										$pagecontent .= "删除数据表{$val}成功！<br/>";
										if($db->query(file_get_contents("install/sql/".$val.".sql"))){
												$pagecontent .= "创建数据表{$val}成功！<br/>";
												if($val == "user_daka_config"){
														if($db->query("INSERT INTO `user_daka_config` (`id`, `days`, `score`, `words`) VALUES(12, 1, 11, ''),(13, 2, 15, ''),(14, 3, 20, ''),(15, 4, 25, ''),(19, 5, 30, ''),(17, 6, 40, '亲，明天再来签到能获得双倍于今日的奖励哦！'),(18, 7, 80, '亲，一周啦！！！')")){
																$pagecontent .= "数据表{$val}插入数据成功！<br/>";
														}else{
																$pagecontent .= "数据表{$val}插入数据失败！<br/>";
														}
												}
										}else{
												$pagecontent .= "创建数据表{$val}失败！<br/>";
										}
								}else{
										$pagecontent .= "删除数据表{$val}失败！<br/>";
								}
						}else{
								if($db->query(file_get_contents("install/sql/".$val.".sql"))){
										$pagecontent .= "创建数据表{$val}成功！<br/>";
												if($val == "user_daka_config"){
														if($db->query("INSERT INTO `user_daka_config` (`id`, `days`, `score`, `words`) VALUES(12, 1, 11, ''),(13, 2, 15, ''),(14, 3, 20, ''),(15, 4, 25, ''),(19, 5, 30, ''),(17, 6, 40, '亲，明天再来签到能获得双倍于今日的奖励哦！'),(18, 7, 80, '亲，一周啦！！！')")){
																$pagecontent .= "数据表{$val}插入数据成功！<br/>";
														}else{
																$pagecontent .= "数据表{$val}插入数据失败！<br/>";
														}
												}
								}else{
										$pagecontent .= "创建数据表{$val}失败！<br/>";
								}
						}
				}
				
				$pagecontent .= "<br/>数据库写入完毕后，开始下一步填写网站基本信息<br/>";
				
				$tourl = "?step=4";
				
		}elseif(@$step == "4" && $iserror == 0){
			
				$pagetitle = "hon6 杰奇 wap安装系统 第四步";
				
				$pagecontent = "<h2>第四步，填写网站基本信息</h2>";
				
				$pagecontent .= "<form action=\"?step=5\" method=\"post\">";
				$pagecontent .= "<h3>组件所在目录名称</h3>";
				$pagecontent .= "<div class=\"input-control text\">";
				$pagecontent .= "<input type=\"text\" placeholder=\"如果您是直接绑定域名到组件目录则这里留空\" name=\"wapdirname\" value=\"\">";
				$pagecontent .= "</div>";
				$pagecontent .= "<h3>访问组件的域名</h3>";
				$pagecontent .= "<div class=\"input-control text\">";
				$pagecontent .= "<input type=\"text\" placeholder=\"不填写http://不填写文件夹只写域名，如:www.baidu.com\" name=\"domain\" value=\"\">";
				$pagecontent .= "</div>";
				$pagecontent .= "<h3>底部显示备案号</h3>";
				$pagecontent .= "<div class=\"input-control text\">";
				$pagecontent .= "<input type=\"text\" placeholder=\"可以留空\" name=\"idcno\" value=\"\">";
				$pagecontent .= "</div>";
				$pagecontent .= "<h3>授权码（<a href=\"http://hon6.sinaapp.com\" target=\"_blank\">购买授权码</a>）</h3>";
				$pagecontent .= "<div class=\"input-control text\">";
				$pagecontent .= "<input type=\"text\" placeholder=\"点击上方网址获取授权码\" name=\"dkey\" value=\"\">";
				$pagecontent .= "</div>";
				$pagecontent .= "<br/>";
				$pagecontent .= "<div class=\"input-control place-right\">";
				$pagecontent .= "<input type=\"submit\" value=\"保存\"/>";
				$pagecontent .= "<input type=\"reset\" value=\"重新填写\"/>";
				$pagecontent .= "</div>";
				$pagecontent .= "</form>";
				
		}elseif(@$step == "5" && $iserror == 0){
				
				$pagetitle = "hon6 杰奇 wap安装系统 第五步";
				
				$pagecontent = "<h2>第五步，保存配置文件，安装成功</h2>";
			
				if(@$domain == ""){
						$iserror = 1;
						$pagecontent = "访问组件的域名必须输入否则无法正常使用组件！<br/>";
						$tourl = "?step=4";
				}
				
				if($iserror == 0){
						$filecontent = "<?php\n";
						$filecontent .= "global \$wapset;\n";
						$filecontent .= "\$wapset = array(\n";
						$filecontent .= "\"wapdirname\" => \"$wapdirname\",\n";
						$filecontent .= "\"domain\" => \"$domain\",\n";
						$filecontent .= "\"idcno\" => \"$idcno\",\n";
						$filecontent .= "\"key\" => \"$dkey\",\n";
						$filecontent .= ");\n";
						$filecontent .= "?>\n";
						
						/*写入配置文件*/
						$of = fopen('config.php','w');
						fwrite($of,$filecontent);
						fclose($of);
						
						/*生成安装锁定文件*/
						$of = fopen('install.lock','w');
						fwrite($of,"success");
						fclose($of);
						
						$pagecontent .= "后台地址为:http://{$domain}/";
						if($wapdirname){
								$pagecontent .= "{$wapdirname}/";
						}
						$pagecontent .= "?m=admin/index<br/>";
						$pagecontent .= "前台地址为:http://{$domain}/";
						if($wapdirname){
								$pagecontent .= "{$wapdirname}/";
						}
						$pagecontent .= "index.php<br/>";
						
						$pagecontent .= "<br/>安装完毕后，您可以选择删除组件目录下的install目录与install.php文件，点击下一步开始访问组件首页<br/>";
						
						$tourl = "http://{$domain}/";
						if($wapdirname){
								$tourl .= "{$wapdirname}/";
						}
				}
		}
		
		/*安装数据表*/
		/*先检查表是否已经存在*/
		if($iserror == 0){
				$smartydate = array("pagetitle" => $pagetitle,
												"pagecontent" => $pagecontent,
												"tourl" => $tourl,
												"redirecturl" => $redirecturl,
												);
												
				$tplpath = "install.tpl";
				$smartyObj -> formatpage($tplpath,$smartydate,$_siter);
		}else{
				
				$redirecturl = $tourl;
				
				$smartydate = array("pagetitle" => $pagetitle,
												"pagecontent" => $pagecontent,
												"tourl" => $tourl,
												"redirecturl" => $tourl,
												);
												
				$tplpath = "public.tpl";
				$smartyObj -> formatpage($tplpath,$smartydate,$_siter);
		}
		
/**
 * 文件或目录权限检查函数
 *
 * @access          public
 * @param           string  $file_path   文件路径
 * @param           bool    $rename_prv  是否在检查修改权限时检查执行rename()函数的权限
 *
 * @return          int     返回值的取值范围为{0 <= x <= 15}，每个值表示的含义可由四位二进制数组合推出。
 *                          返回值在二进制计数法中，四位由高到低分别代表
 *                          可执行rename()函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。
 */
function file_mode_info($file_path)
{
    /* 如果不存在，则不可读、不可写、不可改 */
    if (!file_exists($file_path))
    {
        return false;
    }
    $mark = 0;
    if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
    {
        /* 测试文件 */
        $test_file = $file_path . '/cf_test.txt';
        /* 如果是目录 */
        if (is_dir($file_path))
        {
            /* 检查目录是否可读 */
            $dir = @opendir($file_path);
            if ($dir === false)
            {
                return $mark; //如果目录打开失败，直接返回目录不可修改、不可写、不可读
            }
            if (@readdir($dir) !== false)
            {
                $mark ^= 1; //目录可读 001，目录不可读 000
            }
            @closedir($dir);
            /* 检查目录是否可写 */
            $fp = @fopen($test_file, 'wb');
            if ($fp === false)
            {
                return $mark; //如果目录中的文件创建失败，返回不可写。
            }
            if (@fwrite($fp, 'directory access testing.') !== false)
            {
                $mark ^= 2; //目录可写可读011，目录可写不可读 010
            }
            @fclose($fp);
            @unlink($test_file);
            /* 检查目录是否可修改 */
            $fp = @fopen($test_file, 'ab+');
            if ($fp === false)
            {
                return $mark;
            }
            if (@fwrite($fp, "modify test.\r\n") !== false)
            {
                $mark ^= 4;
            }
            @fclose($fp);
            /* 检查目录下是否有执行rename()函数的权限 */
            if (@rename($test_file, $test_file) !== false)
            {
                $mark ^= 8;
            }
            @unlink($test_file);
        }
        /* 如果是文件 */
        elseif (is_file($file_path))
        {
            /* 以读方式打开 */
            $fp = @fopen($file_path, 'rb');
            if ($fp)
            {
                $mark ^= 1; //可读 001
            }
            @fclose($fp);
            /* 试着修改文件 */
            $fp = @fopen($file_path, 'ab+');
            if ($fp && @fwrite($fp, '') !== false)
            {
                $mark ^= 6; //可修改可写可读 111，不可修改可写可读011...
            }
            @fclose($fp);
            /* 检查目录下是否有执行rename()函数的权限 */
            if (@rename($test_file, $test_file) !== false)
            {
                $mark ^= 8;
            }
        }
    }
    else
    {
        if (@is_readable($file_path))
        {
            $mark ^= 1;
        }
        if (@is_writable($file_path))
        {
            $mark ^= 14;
        }
    }
    
    $markwords = decbin($mark);
    
    if($markwords){}
    
    return decbin($mark);
}						
?>