Index: /temp/trunk/html/install/index.php
===================================================================
--- /temp/trunk/html/install/index.php	(revision 5428)
+++ /temp/trunk/html/install/index.php	(revision 5433)
@@ -61,8 +61,7 @@
 case 'step1':
 	//ÆþÎÏÃÍ¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
-	$objPage->arrErr = lfCheckWEBError($objWebParam, $skip);
-	if(count($objPage->arrErr) == 0) {
-
-		
+	$objPage->arrErr = lfCheckWEBError($objWebParam);
+	
+	if(count($objPage->arrErr) == 0) {
 		// Å¹ÊÞ¤òÊÑ¹¹¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï´°Î»²èÌÌ¤ØÁ«°Ü
 		if ($skip == "on") {
@@ -72,6 +71,4 @@
 			break;
 		}
-				
-				
 		$objPage = lfDispStep2($objPage);
 	} else {
Index: /temp/trunk/html/admin/total/index.php
===================================================================
--- /temp/trunk/html/admin/total/index.php	(revision 5315)
+++ /temp/trunk/html/admin/total/index.php	(revision 5433)
@@ -1,790 +1,600 @@
 <?php
 require_once("../require.php");
-require_once("./index_sub.php");
-require_once("../batch/daily.php");
-
-require_once("./class/SC_GraphPie.php");
-require_once("./class/SC_GraphLine.php");
-require_once("./class/SC_GraphBar.php");
+$INSTALL_DIR = realpath(dirname( __FILE__));
 
 class LC_Page {
-	var $arrResults;
-	var $keyname;
-	var $tpl_image;
-	var $arrTitle;
 	function LC_Page() {
-		$this->tpl_mainpage = 'total/index.tpl';
-		$this->tpl_subnavi = 'total/subnavi.tpl';
-		$this->tpl_graphsubtitle = 'total/subtitle.tpl';
-		$this->tpl_titleimage = '/img/title/title_sale.jpg';
-		$this->tpl_mainno = 'total';
-		global $arrWDAY;
-		$this->arrWDAY = $arrWDAY;
-		// ¥Ú¡¼¥¸¥¿¥¤¥È¥ë
-		$this->arrTitle[''] = "´ü´ÖÊÌ½¸·×";
-		$this->arrTitle['term'] = "´ü´ÖÊÌ½¸·×";
-		$this->arrTitle['products'] = "¾¦ÉÊÊÌ½¸·×";
-		$this->arrTitle['age'] = "Ç¯ÂåÊÌ½¸·×";
-		$this->arrTitle['job'] = "¿¦¶ÈÊÌ½¸·×";
-		$this->arrTitle['member'] = "²ñ°÷ÊÌ½¸·×";
+		$this->arrDB_TYPE = array(
+			'pgsql' => 'PostgreSQL',
+			'mysql' => 'mySQL'	
+		);
 	}
 }
 
 $objPage = new LC_Page();
-$objView = new SC_AdminView();
-$objSess = new SC_Session();
-// Ç§¾Ú²ÄÈÝ¤ÎÈ½Äê
-sfIsSuccess($objSess);
-
-// ÆþÎÏ´ü´Ö¤ò¥»¥Ã¥·¥ç¥ó¤Ëµ­Ï¿¤¹¤ë
-lfSaveDateSession();
+
+// ¥Æ¥ó¥×¥ì¡¼¥È¥³¥ó¥Ñ¥¤¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¹þ¤ß¸¢¸Â¥Á¥§¥Ã¥¯
+$temp_dir = $INSTALL_DIR . '/temp';
+$mode = lfGetFileMode($temp_dir);
+
+if($mode != '777') {
+	sfErrorHeader($temp_dir . "¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(777)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£", true);
+	exit;
+}
+
+$objView = new SC_InstallView($INSTALL_DIR . '/templates', $INSTALL_DIR . '/temp');
 
 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
-$objFormParam = new SC_FormParam();
+$objWebParam = new SC_FormParam();
+$objDBParam = new SC_FormParam();
 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
-lfInitParam();
-$objFormParam->setParam($_POST);
-$objFormParam->setParam($_GET);
-
-// ¸¡º÷¥ï¡¼¥É¤Î°ú¤­·Ñ¤®
-foreach ($_POST as $key => $val) {
-	if (ereg("^search_", $key)) {
-		$objPage->arrHidden[$key] = $val;		
-	}
-}
+$objWebParam = lfInitWebParam($objWebParam);
+$objDBParam = lfInitDBParam($objDBParam);
+
+if ($_POST['db_type'] == 'pgsql') {
+	$port = "";
+}else{
+	$port = ":".$_POST['db_port'];
+}
+
+//¥Õ¥©¡¼¥àÇÛÎó¤Î¼èÆÀ
+$objWebParam->setParam($_POST);
+$objDBParam->setParam($_POST);
 
 switch($_POST['mode']) {
-case 'pdf':
-case 'csv':
-case 'search':
-	// ÆþÎÏÃÍ¤ÎÊÑ´¹
-	$objFormParam->convParam();
-	$objPage->arrErr = lfCheckError($arrRet);
-	$arrRet = $objFormParam->getHashArray();
-	
-	// ÆþÎÏ¥¨¥é¡¼¤Ê¤·
-	if (count($objPage->arrErr) == 0) {
-		foreach ($arrRet as $key => $val) {
-			if($val == "") {
-				continue;
-			}
-			switch ($key) {
-			case 'search_startyear':
-				$sdate = $_POST['search_startyear'] . "/" . $_POST['search_startmonth'] . "/" . $_POST['search_startday'];
-				break;
-			case 'search_endyear':
-				$edate = $_POST['search_endyear'] . "/" . $_POST['search_endmonth'] . "/" . $_POST['search_endday'];
-				break;
-			case 'search_startyear_m':
-				list($sdate, $edate) = sfTermMonth($_POST['search_startyear_m'], $_POST['search_startmonth_m'], CLOSE_DAY);
-				break;
-			default:
-				break;
-			}
-		}
-
-		if($_POST['type'] != "") {
-			$type = $_POST['type'];
-		}
-				
-		$page = $objFormParam->getValue('page');
-		switch($page) {
-		// ¾¦ÉÊÊÌ½¸·×
-		case 'products':
-			if($type == "") {
-				$type = 'all';
-			}
-			$objPage->tpl_page_type = "total/page_products.tpl";
-			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
-			lfRealTimeDailyTotal($sdate, $edate);
-			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-			$objPage = lfGetOrderProducts($type, $sdate, $edate, $objPage);
+// ¤è¤¦¤³¤½
+case 'welcome':
+	$objPage = lfDispStep0($objPage);
+	break;
+// ¥¢¥¯¥»¥¹¸¢¸Â¤Î¥Á¥§¥Ã¥¯
+case 'step0':
+	$objPage = lfDispStep0_1($objPage);
+	break;	
+// ¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
+case 'step0_1':
+	$objPage = lfDispStep1($objPage);
+	break;	
+// WEB¥µ¥¤¥È¤ÎÀßÄê
+case 'step1':
+	//ÆþÎÏÃÍ¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
+	$objPage->arrErr = lfCheckWEBError($objWebParam);
+	if(count($objPage->arrErr) == 0) {
+		$objPage = lfDispStep2($objPage);
+	} else {
+		$objPage = lfDispStep1($objPage);
+	}
+	break;
+// ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê
+case 'step2':
+
+	//ÆþÎÏÃÍ¤Î¥¨¥é¡¼¥Á¥§¥Ã¥¯
+	$objPage->arrErr = lfCheckDBError($objDBParam);
+	if(count($objPage->arrErr) == 0) {
+		
+		// Å¹ÊÞ¤òÊÑ¹¹¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï´°Î»²èÌÌ¤ØÁ«°Ü
+		$skip = $_POST["db_skip"];
+		if ($skip == "on") {
+			// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÀ¸À®
+			lfMakeConfigFile();
+			$objPage = lfDispComplete($objPage);
 			break;
-		// ¿¦¶ÈÊÌ½¸·×
-		case 'job':
-			if($type == "") {
-				$type = 'all';
-			}
-			$objPage->tpl_page_type = "total/page_job.tpl";
-			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
-			lfRealTimeDailyTotal($sdate, $edate);
-			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-			$objPage = lfGetOrderJob($type, $sdate, $edate, $objPage);
-			break;
-		// ²ñ°÷ÊÌ½¸·×
-		case 'member':
-			if($type == "") {
-				$type = 'all';
-			}
-			$objPage->tpl_page_type = "total/page_member.tpl";
-			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
-			lfRealTimeDailyTotal($sdate, $edate);
-			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-			$objPage = lfGetOrderMember($type, $sdate, $edate, $objPage);
-			break;
-		// Ç¯ÂåÊÌ½¸·×
-		case 'age':
-			if($type == "") {
-				$type = 'all';
-			}
-			$objPage->tpl_page_type = "total/page_age.tpl";
-			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
-			lfRealTimeDailyTotal($sdate, $edate);
-			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-			$objPage = lfGetOrderAge($type, $sdate, $edate, $objPage);
-			break;
-		// ´ü´ÖÊÌ½¸·×
-		default:
-			if($type == "") {
-				$type = 'day';
-			}
-			$objPage->tpl_page_type = "total/page_term.tpl";
-			// Ì¤½¸·×¥Ç¡¼¥¿¤Î½¸·×¤ò¹Ô¤¦
-			lfRealTimeDailyTotal($sdate, $edate);
-			// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-			$objPage = lfGetOrderTerm($type, $sdate, $edate, $objPage);
+		}
+		
+		$objPage = lfDispStep3($objPage);
+
+	} else {
+		$objPage = lfDispStep2($objPage);
+	}
+	break;
+// ¥Æ¡¼¥Ö¥ë¤ÎºîÀ®
+case 'step3':
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objDBParam->getHashArray();
+
+	// ¥Æ¡¼¥Ö¥ë¤ÎºîÀ®
+	$objPage->arrErr = lfExecuteSQL("./create_table_".$arrRet['db_type'].".sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
+	if(count($objPage->arrErr) == 0) {
+		$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+	} else {
+		$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+	}
+
+	// ¥Ó¥å¡¼¤ÎºîÀ®
+	if(count($objPage->arrErr) == 0 and $arrRet['db_type'] == 'pgsql') {
+		// ¥Ó¥å¡¼¤ÎºîÀ®
+		$objPage->arrErr = lfExecuteSQL("./create_view.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§¥Ó¥å¡¼¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§¥Ó¥å¡¼¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}	
+	
+	// ½é´ü¥Ç¡¼¥¿¤ÎºîÀ®
+	if(count($objPage->arrErr) == 0) {
+		$objPage->arrErr = lfExecuteSQL("./insert_data.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§½é´ü¥Ç¡¼¥¿¤ÎºîÀ®¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§½é´ü¥Ç¡¼¥¿¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}	
+	
+	// ¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß
+	if(count($objPage->arrErr) == 0) {
+		$objPage->arrErr = lfExecuteSQL("./column_comment.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§¥«¥é¥à¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}	
+	
+	// ¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß
+	if(count($objPage->arrErr) == 0) {
+		$objPage->arrErr = lfExecuteSQL("./table_comment.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port']); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¥³¥á¥ó¥È¤Î½ñ¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}
+
+
+	if(count($objPage->arrErr) == 0) {
+		// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÀ¸À®
+		lfMakeConfigFile();
+		$objPage = lfDispStep3($objPage);
+		$objPage->tpl_mode = 'complete';
+	} else {
+		$objPage = lfDispStep3($objPage);
+	}
+	break;
+// ¥Æ¡¼¥Ö¥ëÎàºï½ü
+case 'drop':
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objDBParam->getHashArray();
+	
+	if ($arrRet['db_type'] == 'pgsql'){
+		// ¥Ó¥å¡¼¤Îºï½ü
+		$objPage->arrErr = lfExecuteSQL("./drop_view.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port'], false); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§¥Ó¥å¡¼¤Îºï½ü¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§¥Ó¥å¡¼¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}
+
+
+	// ¥Æ¡¼¥Ö¥ë¤Îºï½ü
+	if(count($objPage->arrErr) == 0) {
+		$objPage->arrErr = lfExecuteSQL("./drop_table.sql", $arrRet['db_user'], $arrRet['db_password'], $arrRet['db_server'], $arrRet['db_name'], $arrRet['db_type'], $arrRet['db_port'], false); 
+		if(count($objPage->arrErr) == 0) {
+			$objPage->tpl_message.="¡û¡§¥Æ¡¼¥Ö¥ë¤Îºï½ü¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£<br>";
+		} else {
+			$objPage->tpl_message.="¡ß¡§¥Æ¡¼¥Ö¥ë¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";		
+		}
+	}
+	$objPage = lfDispStep3($objPage);
+	break;
+// ´°Î»²èÌÌ
+case 'complete':
+	// ¥·¥ç¥Ã¥×¥Þ¥¹¥¿¾ðÊó¤Î½ñ¤­¹þ¤ß
+	$arrRet =  $objDBParam->getHashArray();
+	$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].$port."/".$arrRet['db_name'];
+	$sqlval['shop_name'] = $objWebParam->getValue('shop_name');
+	$sqlval['email01'] = $objWebParam->getValue('admin_mail');
+	$sqlval['email02'] = $objWebParam->getValue('admin_mail');
+	$sqlval['email03'] = $objWebParam->getValue('admin_mail');
+	$sqlval['email04'] = $objWebParam->getValue('admin_mail');
+	$sqlval['email05'] = $objWebParam->getValue('admin_mail');
+	$sqlval['top_tpl'] = "default1";
+	$sqlval['product_tpl'] = "default1";
+	$sqlval['detail_tpl'] = "default1";
+	$sqlval['mypage_tpl'] = "default1";
+	$objQuery = new SC_Query($dsn);
+	$cnt = $objQuery->count("dtb_baseinfo");
+	if($cnt > 0) {
+		$objQuery->update("dtb_baseinfo", $sqlval);
+	} else {		
+		$objQuery->insert("dtb_baseinfo", $sqlval);		
+	}
+	global $GLOBAL_ERR;
+	$GLOBAL_ERR = "";
+	$objPage = lfDispComplete($objPage);
+	break;
+case 'return_step0':
+	$objPage = lfDispStep0($objPage);
+	break;	
+case 'return_step1':
+	$objPage = lfDispStep1($objPage);
+	break;
+case 'return_step2':
+	$objPage = lfDispStep2($objPage);
+	break;
+case 'return_welcome':
+default:
+	$objPage = lfDispWelcome($objPage);
+	break;
+}
+
+//¥Õ¥©¡¼¥àÍÑ¤Î¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹
+$objPage->arrForm = $objWebParam->getFormParamList();
+$objPage->arrForm = array_merge($objPage->arrForm, $objDBParam->getFormParamList());
+
+// SiteInfo¤òÆÉ¤ß¹þ¤Þ¤Ê¤¤
+$objView->assignobj($objPage);
+$objView->display('install_frame.tpl');
+//-----------------------------------------------------------------------------------------------------------------------------------
+// ¤è¤¦¤³¤½²èÌÌ¤ÎÉ½¼¨
+function lfDispWelcome($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'welcome.tpl';
+	$objPage->tpl_mode = 'welcome';
+	return $objPage;
+}
+
+// STEP0²èÌÌ¤ÎÉ½¼¨(¥Õ¥¡¥¤¥ë¸¢¸Â¥Á¥§¥Ã¥¯) 
+function lfDispStep0($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'step0.tpl';
+	$objPage->tpl_mode = 'step0';
+	
+	// ¥×¥í¥°¥é¥à¤Ç½ñ¹þ¤ß¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥ì¥¯¥È¥ê
+	$arrWriteFile = array(
+		"html/install.inc",
+		"html/user_data",
+		"html/upload",
+		"data/Smarty/templates_c",		
+		"data/update",
+		"data/logs",
+	);
+	
+	$mess = "";
+	$err_file = false;
+	foreach($arrWriteFile as $val) {
+		$path = "../../" . $val;		
+		if(file_exists($path)) {
+			$mode = lfGetFileMode("../../" . $val);
 			
-			break;
-		}
-
-		if($_POST['mode'] == 'csv') {
-			// CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
-			list($arrTitleCol, $arrDataCol) = lfGetCSVColum($page, $objPage->keyname);
-			$head = sfGetCSVList($arrTitleCol);
-			$data = lfGetDataColCSV($objPage->arrResults, $arrDataCol);
-			// CSV¤òÁ÷¿®¤¹¤ë¡£
-			sfCSVDownload($head.$data, $page."_".$type);
-			exit;
-		}
-		
-		if($_POST['mode'] == 'pdf') {
-			// CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤Î¼èÆÀ
-			list($arrTitleCol, $arrDataCol, $arrColSize, $arrAlign, $title) = lfGetPDFColum($page, $type, $objPage->keyname);
-			$head = sfGetPDFList($arrTitleCol);
-			$data = lfGetDataColPDF($objPage->arrResults, $arrDataCol, 40);
-			// PDF½ÐÎÏÍÑ
-			$graph_name = basename($objPage->tpl_image);
-			lfPDFDownload($graph_name, $head . $data, $arrColSize, $arrAlign, $sdate, $edate, $title);
-			exit;	
-		}	
-	}
-	break;
-default:
-	if(count($_GET) == 0) {
-		/*
-			¥ê¥¢¥ë¥¿¥¤¥à½¸·×¤ËÀÚ¤êÂØ¤¨ by Nakagawa 2006/08/31
-			// 1¥ö·îÊ¬¤Î½¸·×
-			lfStartDailyTotal(31,0);
-		*/
-	}
-	break;
-}
-
-// ÅÐÏ¿¡¦¹¹¿·Æü¸¡º÷ÍÑ
-$objDate = new SC_Date();
-$objDate->setStartYear(RELEASE_YEAR);
-$objDate->setEndYear(DATE("Y"));
-$objPage->arrYear = $objDate->getYear();
-$objPage->arrMonth = $objDate->getMonth();
-$objPage->arrDay = $objDate->getDay();
-// ÆþÎÏÃÍ¤Î¼èÆÀ
-$objPage->arrForm = $objFormParam->getFormParamList();
-
-$objPage->tpl_subtitle = $objPage->arrTitle[$objFormParam->getValue('page')];
-
-$objView->assignobj($objPage);
-$objView->display(MAIN_FRAME);
-
-//---------------------------------------------------------------------------------------------------------------------------
-/* PDF½ÐÎÏ */
-function lfPDFDownload($image, $table, $arrColSize, $arrAlign, $sdate, $edate, $title) {
-	
-	$objPdf = new SC_Pdf();
-	$objPdf->setTableColor("CCCCCC", "F0F0F0", "D1DEFE");
+			// ¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç
+			if(is_dir($path)) {
+				if($mode == "777") {
+					$mess.= ">> ¡û¡§$val($mode) ¤ÏÌäÂê¤¢¤ê¤Þ¤»¤ó¡£<br>";					
+				} else {
+					$mess.= ">> ¡ß¡§$val($mode) ¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(777)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£<br>";
+					$err_file = true;										
+				}
+			} else {
+				if($mode == "666") {
+					$mess.= ">> ¡û¡§$val($mode) ¤ÏÌäÂê¤¢¤ê¤Þ¤»¤ó¡£<br>";					
+				} else {
+					$mess.= ">> ¡ß¡§$val($mode) ¤Ë¥æ¡¼¥¶½ñ¹þ¤ß¸¢¸Â(666)¤òÉÕÍ¿¤·¤Æ²¼¤µ¤¤¡£<br>";
+					$err_file = true;							
+				}
+			}	
 			
-	// ÅÚÂæ¤È¤Ê¤ëPDF¥Õ¥¡¥¤¥ë¤Î»ØÄê
-	$objPdf->setTemplate(PDF_DIR . "total.pdf");
-
-	$disp_sdate = sfDispDBDate($sdate, false);
-	$disp_edate = sfDispDBDate($edate, false);
-				
-	$arrText['title_block'] = $title;
-	$arrText['date_block'] = "$disp_sdate-$disp_edate";
-	$arrImage['graph_block'] = GRAPH_DIR . $image;
-	
-	// Ê¸Ëö¤Î\n¤òºï½ü¤¹¤ë
-	$table = ereg_replace("\n$", "", $table);
-	$arrRet = split("\n", $table);
-	$page_max = intval((count($arrRet) / 35) + 1);
-	
-	for($page = 1; $page <= $page_max; $page++) {
-		if($page > 1) {
-			// 2¥Ú¡¼¥¸°Ê¹ß
-			$start_no = 35 * ($page - 1) + 1;
-		} else {
-			// ³«»Ï¥Ú¡¼¥¸
-			$start_no = 1;			
-		}
-				
-		$arrText['page_block'] = $page . " / " . $page_max;
-		$objPdf->setTextBlock($arrText);
-		$objPdf->setImageBlock($arrImage);
-		// ¥Ö¥í¥Ã¥¯ÃÍ¤ÎÆþÎÏ
-		$objPdf->writeBlock();
-		// ºÇ½ª¥Ú¡¼¥¸¤Î¤ß¡¢¾¦ÉÊÊÌ½¸·×¤Ï¹ç·×¤¬¤Ê¤¤¤Î¤ÇºÇ½ª¹Ô¤Î¿§¤òÊÑ¹¹¤·¤Ê¤¤¡£
-		if($page == $page_max && $_POST['page'] != 'products') {
-			$last_color_flg = true;
-		} else {
-			$last_color_flg = false;
-		}	
-		$objPdf->writeTableCenter($table, 500, $arrColSize, $arrAlign, 35, $start_no, $last_color_flg);
-		$objPdf->closePage();
-	}
-
-	// PDF¤Î½ÐÎÏ
-	$objPdf->output();	
-}
-
-/* ¥»¥Ã¥·¥ç¥ó¤ËÆþÎÏ´ü´Ö¤òµ­Ï¿¤¹¤ë */
-function lfSaveDateSession() {
-	if($_POST['form'] == 1) {
-		$_SESSION['total']['startyear_m'] = $_POST['search_startyear_m'];
-		$_SESSION['total']['startmonth_m'] = $_POST['search_startmonth_m'];
-	}
-	
-	if($_POST['form'] == 2) {
-		$_SESSION['total']['startyear'] = $_POST['search_startyear'];
-		$_SESSION['total']['startmonth'] = $_POST['search_startmonth'];
-		$_SESSION['total']['startday'] = $_POST['search_startday'];
-		$_SESSION['total']['endyear'] = $_POST['search_endyear'];
-		$_SESSION['total']['endmonth'] = $_POST['search_endmonth'];
-		$_SESSION['total']['endday'] = $_POST['search_endday'];
-	}
-}
-
-/* ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Î¼èÆÀ */
-function lfGetDateDefault() {
-	$year = date("Y");
-	$month = date("m");
-	$day = date("d");
-	
-	$list = $_SESSION['total'];
-	
-	// ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»Ï·îÅÙ¤¬ÊÝÂ¸¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-	if($_SESSION['total']['startyear_m'] == "") {
-		$list['startyear_m'] = $year;
-		$list['startmonth_m'] = $month;
-	}
-	
-	// ¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ë³«»ÏÆüÉÕ¡¢½ªÎ»ÆüÉÕ¤¬ÊÝÂ¸¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-	if($_SESSION['total']['startyear'] == "" && $_SESSION['total']['endyear'] == "") {
-		$list['startyear'] = $year;
-		$list['startmonth'] = $month;
-		$list['startday'] = $day;
-		$list['endyear'] = $year;
-		$list['endmonth'] = $month;
-		$list['endday'] = $day;
-	}
-	
-	return $list;	
-}
-
-/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
-function lfInitParam() {
-	global $objFormParam;
-		
-	// ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Î¼èÆÀ
-	$arrList = lfGetDateDefault();
-	
-	// ·îÅÙ½¸·×
-	$objFormParam->addParam("·îÅÙ", "search_startyear_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear_m']);
-	$objFormParam->addParam("·îÅÙ", "search_startmonth_m", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth_m']);
-	// ´ü´Ö½¸·×
-	$objFormParam->addParam("³«»ÏÆü", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startyear']);
-	$objFormParam->addParam("³«»ÏÆü", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startmonth']);
-	$objFormParam->addParam("³«»ÏÆü", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['startday']);
-	$objFormParam->addParam("½ªÎ»Æü", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endyear']);
-	$objFormParam->addParam("½ªÎ»Æü", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endmonth']);
-	$objFormParam->addParam("½ªÎ»Æü", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), $arrList['endday']);
-	
-	// hidden¥Ç¡¼¥¿¤Î¼èÆÀÍÑ
-	$objFormParam->addParam("", "page");
-	$objFormParam->addParam("", "type");
-}
-
-/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
-function lfCheckError() {
-	global $objFormParam;
+		} else {
+			$mess.= ">> ¡ß¡§$val ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£<br>";
+			$err_file = true;
+		}
+	}
+	
+	// ¸¢¸Â¥¨¥é¡¼Åù¤¬È¯À¸¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
+	if(!$err_file) {
+		$path = "../../data/Smarty/templates_c/admin";
+		if(!file_exists($path)) {
+			mkdir($path);
+		}
+		$path = "../../html/upload/save_image";
+		if(!file_exists($path)) {
+			mkdir($path);
+		}
+		$path = "../../html/upload/temp_image";
+		if(!file_exists($path)) {
+			mkdir($path);
+		}
+		$path = "../../html/upload/graph_image";
+		if(!file_exists($path)) {
+			mkdir($path);
+		}
+		$path = "../../html/upload/csv";
+		if(!file_exists($path)) {
+			mkdir($path);
+		}
+	}
+	
+	$objPage->mess = $mess;
+	$objPage->err_file = $err_file;
+
+	return $objPage;
+}
+
+
+// STEP0_1²èÌÌ¤ÎÉ½¼¨(¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼) 
+function lfDispStep0_1($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'step0_1.tpl';
+	$objPage->tpl_mode = 'step0_1';
+	// ¥Õ¥¡¥¤¥ë¥³¥Ô¡¼
+	$objPage->copy_mess = lfCopyDir("./user_data/", "../../html/user_data/", $objPage->copy_mess);
+	$objPage->copy_mess = lfCopyDir("./save_image/", "../../html/upload/save_image/", $objPage->copy_mess);	
+	return $objPage;
+}
+
+function lfGetFileMode($path) {
+	$mode = substr(sprintf('%o', fileperms($path)), -3);
+	return $mode;
+}
+
+// STEP1²èÌÌ¤ÎÉ½¼¨
+function lfDispStep1($objPage) {
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objDBParam->getHashArray();
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'step1.tpl';
+	$objPage->tpl_mode = 'step1';
+	return $objPage;
+}
+
+// STEP2²èÌÌ¤ÎÉ½¼¨
+function lfDispStep2($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'step2.tpl';
+	$objPage->tpl_mode = 'step2';
+	return $objPage;
+}
+
+// STEP3²èÌÌ¤ÎÉ½¼¨
+function lfDispStep3($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
+	$objPage->tpl_db_skip = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'step3.tpl';
+	$objPage->tpl_mode = 'step3';
+	return $objPage;
+}
+
+// ´°Î»²èÌÌ¤ÎÉ½¼¨
+function lfDispComplete($objPage) {
+	global $objWebParam;
+	global $objDBParam;
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = $objWebParam->getHashArray();
+	// hidden¤ËÆþÎÏÃÍ¤òÊÝ»ý
+	$objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray());
+	$objPage->arrHidden['db_skip'] = $_POST['db_skip'];
+	$objPage->tpl_mainpage = 'complete.tpl';
+	$objPage->tpl_mode = 'complete';
+	return $objPage;
+}
+
+// WEB¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+function lfInitWebParam($objWebParam) {
+	
+	$install_dir = realpath(dirname( __FILE__) . "/../../") . "/";
+	$normal_url = "http://" . $_SERVER['HTTP_HOST'] . "/";
+	$secure_url = "http://" . $_SERVER['HTTP_HOST'] . "/";
+	$domain = ereg_replace("^[a-zA-Z0-9_~=&\?\/-]+\.", "", $_SERVER['HTTP_HOST']);
+	$objWebParam->addParam("Å¹Ì¾", "shop_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));
+	$objWebParam->addParam("´ÉÍý¼Ô¥á¡¼¥ë¥¢¥É¥ì¥¹", "admin_mail", MTEXT_LEN, "", array("EXIST_CHECK","EMAIL_CHECK","EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK"));
+	$objWebParam->addParam("¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê", "install_dir", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $install_dir);
+	$objWebParam->addParam("URL(ÄÌ¾ï)", "normal_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $normal_url);
+	$objWebParam->addParam("URL(¥»¥­¥å¥¢)", "secure_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $secure_url);
+	$objWebParam->addParam("¥É¥á¥¤¥ó", "domain", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $domain);	
+
+	return $objWebParam;
+}
+
+// DB¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+function lfInitDBParam($objDBParam) {
+	
+	$db_server = "127.0.0.1";
+	$db_port = "3306";
+	$db_name = "eccube_db";
+	$db_user = "eccube_db_user";
+	
+	$objDBParam->addParam("DB¤Î¼ïÎà", "db_type", INT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));
+	$objDBParam->addParam("DB¥µ¡¼¥Ð", "db_server", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_server);
+	$objDBParam->addParam("DB¥Ý¡¼¥È", "db_port", INT_LEN, "", array("MAX_LENGTH_CHECK"), $db_port);
+	$objDBParam->addParam("DBÌ¾", "db_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_name);
+	$objDBParam->addParam("DB¥æ¡¼¥¶", "db_user", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_user);
+	$objDBParam->addParam("DB¥Ñ¥¹¥ï¡¼¥É", "db_password", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"));	
+
+	return $objDBParam;
+}
+
+// ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯
+function lfCheckWebError($objFormParam) {
 	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
 	$arrRet =  $objFormParam->getHashArray();
 	$objErr = new SC_CheckError($arrRet);
 	$objErr->arrErr = $objFormParam->checkError();
-	
-	// ÆÃ¼ì¹àÌÜ¥Á¥§¥Ã¥¯
-	if($_POST['form'] == 1) {
-		$objErr->doFunc(array("·îÅÙ", "search_startyear_m"), array("ONE_EXIST_CHECK"));
-	}
-	
-	if($_POST['form'] == 2) {
-		$objErr->doFunc(array("´ü´Ö", "search_startyear", "search_endyear"), array("ONE_EXIST_CHECK"));
-	}
-			
-	$objErr->doFunc(array("·îÅÙ", "search_startyear_m", "search_startmonth_m"), array("ALL_EXIST_CHECK"));
-	$objErr->doFunc(array("³«»ÏÆü", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
-	$objErr->doFunc(array("½ªÎ»Æü", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
-	$objErr->doFunc(array("³«»ÏÆü", "½ªÎ»Æü", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
 	return $objErr->arrErr;
 }
 
-/* ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎºîÀ® */
-function lfGetGraphLine($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
-	
-	$ret_path = "";
-	
-	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
-	if(count($arrResults) > 0) {
+// ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯
+function lfCheckDBError($objFormParam) {
+	global $port;
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objFormParam->getHashArray();
+	
+	sfprintr($arrRet);
+	
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+	
+	if(count($objErr->arrErr) == 0) {
+		// ÀÜÂ³³ÎÇ§
+		$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].$port."/".$arrRet['db_name'];
+		// Debug¥â¡¼¥É»ØÄê
+		$options['debug'] = 3;
+		$objDB = DB::connect($dsn, $options);
+		// ÀÜÂ³¥¨¥é¡¼
+		if(PEAR::isError($objDB)) {
+			$objErr->arrErr['all'] = ">> " . $objDB->message . "<br>";
+			// ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë
+			ereg("\[(.*)\]", $objDB->userinfo, $arrKey);
+			$objErr->arrErr['all'].= $arrKey[0] . "<br>";
+			gfPrintLog($objDB->userinfo, "./temp/install.log");
+		}
+	}
+	return $objErr->arrErr;
+}
+
+// SQLÊ¸¤Î¼Â¹Ô
+function lfExecuteSQL($filepath, $db_user, $db_password, $db_server, $db_name, $db_type, $db_port, $disp_err = true) {
+	global $port;
+	$arrErr = array();
+
+	if(!file_exists($filepath)) {
+		$arrErr['all'] = ">> ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó";
+	} else {
+  		if($fp = fopen($filepath,"r")) {
+			$sql = fread($fp, filesize($filepath));
+			fclose($fp);
+		}
+
+		$dsn = $db_type."://".$db_user.":".$db_password."@".$db_server.$port."/".$db_name;
 		
-		// ¥°¥é¥Õ¤ÎÀ¸À®
-		$arrList = sfArrKeyValue($arrResults, $keyname, "total");
-
-		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
-		$pngname = lfGetGraphPng($type);
-		
-		$path = GRAPH_DIR . $pngname;
-		
-		// ¥é¥Ù¥ëÉ½¼¨¥¤¥ó¥¿¡¼¥Ð¥ë¤òµá¤á¤ë
-		$interval = intval(count($arrList) / 20);
-		if($interval < 1) {
-			$interval = 1;
-		}
-		$objGraphPie = new SC_GraphPie();
-		$objGraphLine = new SC_GraphLine();
-		
-		// ÃÍ¤Î¥»¥Ã¥È
-		$objGraphLine->setData($arrList);
-		$objGraphLine->setXLabel(array_keys($arrList));
-		
-		// ¥é¥Ù¥ë²óÅ¾(ÆüËÜ¸ìÉÔ²Ä)
-		if($keyname == "key_day"){
-			$objGraphLine->setXLabelAngle(45);
-		}
-
-		// ¥¿¥¤¥È¥ë¥»¥Ã¥È
-		$objGraphLine->setXTitle($xtitle);
-		$objGraphLine->setYTitle($ytitle);
-		
-		// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
-		list($sy, $sm, $sd) = split("[/ ]" , $sdate);
-		list($ey, $em, $ed) = split("[/ ]" , $edate);
-		$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
-		$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
-		$objGraphLine->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
-		
-		// ¥°¥é¥ÕÉÁ²è
-		$objGraphLine->drawGraph();
-		$objGraphLine->outputGraph(false, $path);
-
-		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
-		$ret_path = GRAPH_URL . $pngname;
-	}
-	return $ret_path;
-}
-
-// ±ß¥°¥é¥Õ¤ÎºîÀ® 
-function lfGetGraphPie($arrResults, $keyname, $type, $title = "", $sdate = "", $edate = "") {
-	
-	$ret_path = "";
-	
-	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
-	if(count($arrResults) > 0) {
-		// ¥°¥é¥Õ¤ÎÀ¸À®
-		$arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
-		
-		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
-		$pngname = lfGetGraphPng($type);
-		$path = GRAPH_DIR . $pngname;
-		
-			$objGraphPie = new SC_GraphPie();
-			
-			/* ¥Ç¥Ð¥Ã¥°É½¼¨ÍÑ by naka
-			foreach($arrList as $key => $val) {
-				$objGraphPie->debugPrint("key:$key val:$val");
-			}
-			*/
-			
-			// ¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë
-			$objGraphPie->setData($arrList);
-			// ËÞÎã¤ò¥»¥Ã¥È¤¹¤ë
-			$objGraphPie->setLegend(array_keys($arrList));
-									
-			// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
-			list($sy, $sm, $sd) = split("[/ ]" , $sdate);
-			list($ey, $em, $ed) = split("[/ ]" , $edate);
-			$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
-			$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
-			$objGraphPie->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
-					
-			// ±ß¥°¥é¥ÕÉÁ²è
-			$objGraphPie->drawGraph();
-			
-			// ¥°¥é¥Õ¤Î½ÐÎÏ
-			$objGraphPie->outputGraph(false, $path);			
-
-		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
-		$ret_path = GRAPH_URL . $pngname;
-	}
-	return $ret_path;
-}
-
-// ËÀ¥°¥é¥Õ¤ÎºîÀ® 
-function lfGetGraphBar($arrResults, $keyname, $type, $xtitle, $ytitle, $sdate, $edate) {
-	$ret_path = "";
-	
-	// ·ë²Ì¤¬0¹Ô°Ê¾å¤¢¤ë¾ì¹ç¤Î¤ß¥°¥é¥Õ¤òÀ¸À®¤¹¤ë¡£
-	if(count($arrResults) > 0) {
-		// ¥°¥é¥Õ¤ÎÀ¸À®
-		$arrList = sfArrKeyValue($arrResults, $keyname, "total", GRAPH_PIE_MAX, GRAPH_LABEL_MAX);
-		
-		// °ì»þ¥Õ¥¡¥¤¥ëÌ¾¤Î¼èÆÀ
-		$pngname = lfGetGraphPng($type);
-		$path = GRAPH_DIR . $pngname;
-		
-			$objGraphBar = new SC_GraphBar();
-			
-			foreach(array_keys($arrList) as $val) {
-				$arrKey[] = ereg_replace("¡Á", "-", $val);
+		$objDB = DB::connect($dsn);
+		// ÀÜÂ³¥¨¥é¡¼
+		if(!PEAR::isError($objDB)) {
+			// ²þ¹Ô¡¢¥¿¥Ö¤ò1¥¹¥Ú¡¼¥¹¤ËÊÑ´¹
+			$sql = preg_replace("/[\r\n\t]/"," ",$sql);
+			$sql_split = split(";",$sql);
+			foreach($sql_split as $key => $val){
+				if (trim($val) != "") {
+					$ret = $objDB->query($val);
+					if(PEAR::isError($ret) and $disp_err) {
+						$arrErr['all'] = ">> " . $ret->message . "<br>";
+						// ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë
+						ereg("\[(.*)\]", $ret->userinfo, $arrKey);
+						$arrErr['all'].= $arrKey[0] . "<br>";
+						$objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊÑ¹¹¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";
+						gfPrintLog($ret->userinfo, "./temp/install.log");
+					}
+				}
 			}
 			
-			// ¥°¥é¥ÕÉÁ²è
-			$objGraphBar->setXLabel($arrKey);
-			$objGraphBar->setXTitle($xtitle);
-			$objGraphBar->setYTitle($ytitle);
-			$objGraphBar->setData($arrList);
-			
-			// ¥á¥¤¥ó¥¿¥¤¥È¥ëºîÀ®
-			$arrKey = array_keys($arrList);
-			list($sy, $sm, $sd) = split("[/ ]" , $sdate);
-			list($ey, $em, $ed) = split("[/ ]" , $edate);
-			$start_date = $sy . "Ç¯" . $sm . "·î" . $sd . "Æü";
-			$end_date = $ey . "Ç¯" . $em . "·î" . $ed . "Æü";
-			$objGraphBar->drawTitle("½¸·×´ü´Ö¡§" . $start_date . " - " . $end_date);
-			
-			$objGraphBar->drawGraph();
-			$objGraphBar->outputGraph(false,$path);
-
-		// ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤òÊÖ¤¹
-		$ret_path = GRAPH_URL . $pngname;
-	}
-	return $ret_path;
-}
-
-// ¥°¥é¥ÕÍÑ¤ÎPNG¥Õ¥¡¥¤¥ëÌ¾ 
-function lfGetGraphPng($keyname) {
-	if($_POST['search_startyear_m'] != "") {
-		$pngname = sprintf("%s_%02d%02d.png", $keyname, substr($_POST['search_startyear_m'],2), $_POST['search_startmonth_m']);
-	} else {
-		$pngname = sprintf("%s_%02d%02d%02d_%02d%02d%02d.png", $keyname, substr($_POST['search_startyear'], 2), $_POST['search_startmonth'], $_POST['search_startday'], substr($_POST['search_endyear'],2), $_POST['search_endmonth'], $_POST['search_endday']);
-	}
-	return $pngname;
-}
-
-// ²ñ°÷¡¢Èó²ñ°÷½¸·×¤ÎWHEREÊ¬¤ÎºîÀ®
-function lfGetWhereMember($col_date, $sdate, $edate, $type, $col_member = "customer_id") {
-	// ¼èÆÀÆüÉÕ¤Î»ØÄê
-	if($sdate != "") {
-		if ($where != "") {
-			$where.= " AND ";
-		}			
-		$where.= " $col_date >= '". $sdate ."'";
-	}
+		} else {
+			$arrErr['all'] = ">> " . $objDB->message;
+			gfPrintLog($objDB->userinfo, "./temp/install.log");
+		}
+	}
+	return $arrErr;
+}
+
+// ÀßÄê¥Õ¥¡¥¤¥ë¤ÎºîÀ®
+function lfMakeConfigFile() {
+	global $objWebParam;
+	global $objDBParam;
+	global $port;
+	
+	$filepath = $objWebParam->getValue('install_dir') . "/html/install.inc";
+	$domain = $objWebParam->getValue('domain');
+	if(!ereg("^\.", $domain)) {
+		$domain = "." . $domain;
+	}
+	
+	$root_dir = $objWebParam->getValue('install_dir');
+	if (!ereg("/$", $root_dir)) {
+		$root_dir = $root_dir . "/";
+	}
+	
+	$config_data = 
+	"<?php\n".
+	"    define ('ECCUBE_INSTALL', 'ON');\n" .
+	"    define ('ROOT_DIR', '" . $root_dir . "');\n" . 
+	"    define ('SITE_URL', '" . $objWebParam->getValue('normal_url') . "');\n" .
+	"    define ('SSL_URL', '" . $objWebParam->getValue('secure_url') . "');\n" .
+	"    define ('DOMAIN_NAME', '" . $domain . "');\n" .
+	"    define ('DB_TYPE', '" . $objDBParam->getValue('db_type') . "');\n" .
+	"    define ('DB_USER', '" . $objDBParam->getValue('db_user') . "');\n" . 
+	"    define ('DB_PASSWORD', '" . $objDBParam->getValue('db_password') . "');\n" .
+	"    define ('DB_SERVER', '" . $objDBParam->getValue('db_server') . "');\n" .
+	"    define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" .
+	"    define ('DB_PORT', '" . $port . "');\n" .
+	"?>";
+	
+	if($fp = fopen($filepath,"w")) {
+		fwrite($fp, $config_data);
+		fclose($fp);
+	}
+}
+
+// ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òºÆµ¢Åª¤Ë¥³¥Ô¡¼
+function lfCopyDir($src, $des, $mess, $override = false){
+	if(!is_dir($src)){
+		return false;
+	}
+
+	$oldmask = umask(0);
+	$mod= stat($src);
+	
+	// ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
+	if(!file_exists($des)) {
+		mkdir($des, $mod[2]);
+	}
+	
+	$fileArray=glob( $src."*" );
+	foreach( $fileArray as $key => $data_ ){
+		// CVS´ÉÍý¥Õ¥¡¥¤¥ë¤Ï¥³¥Ô¡¼¤·¤Ê¤¤
+		if(ereg("/CVS/Entries", $data_)) {
+			break;
+		}
+		if(ereg("/CVS/Repository", $data_)) {
+			break;
+		}
+		if(ereg("/CVS/Root", $data_)) {
+			break;
+		}
 		
-	if($edate != "") {
-		if ($where != "") {
-			$where.= " AND ";
-		}
-		$edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));	
-		$where.= " $col_date < date('" . $edate ."')";
-	}
-	
-	// ²ñ°÷¡¢Èó²ñ°÷¤ÎÈ½Äê
-	switch($type) {
-	// Á´ÂÎ
-	case 'all':
-		break;
-	case 'member':
-		if ($where != "") {
-			$where.= " AND ";
-		}
-		$where.= " $col_member <> 0";
-		break;
-	case 'nonmember':
-		if ($where != "") {
-			$where.= " AND ";
-		}
-		$where.= " $col_member = 0";
-		break;
-	default:
-		break;
-	}
-	
-	return array($where, $arrval);
-}
-
-/** ²ñ°÷ÊÌ½¸·× **/
-function lfGetOrderMember($type, $sdate, $edate, $objPage, $graph = true) {
-	global $arrSex;
-		
-	list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
-	
-	// ²ñ°÷½¸·×¤Î¼èÆÀ
-	$col = "COUNT(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average, order_sex";
-	$from = "dtb_order";
-	$objQuery = new SC_Query();
-	$objQuery->setGroupBy("order_sex");
-	
-	$tmp_where = $where . " AND customer_id <> 0 AND del_flg = 0 ";
-	$arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
-	
-	// ²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
-	$max = count($arrRet);
-	for($i = 0; $i < $max; $i++) {
-		$arrRet[$i]['member_name'] = '²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
-	}
-	$objPage->arrResults = $arrRet;
-	
-	// Èó²ñ°÷½¸·×¤Î¼èÆÀ
-	$tmp_where = $where . " AND customer_id = 0 AND del_flg = 0 ";
-	$arrRet = $objQuery->select($col, $from, $tmp_where, $arrval);
-	// Èó²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤¹¤ë¡£
-	$max = count($arrRet);
-	for($i = 0; $i < $max; $i++) {
-		$arrRet[$i]['member_name'] = 'Èó²ñ°÷'.$arrSex[$arrRet[$i]['order_sex']];
-	}
-	
-	$objPage->arrResults = array_merge($objPage->arrResults, $arrRet);
-	
-	// ±ß¥°¥é¥Õ¤ÎÀ¸À®
-	if($graph) {	
-		$image_key = "member";
-		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "member_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
-	}
-	
-	return $objPage;
-}
-
-/** ¾¦ÉÊÊÌ½¸·× **/
-function lfGetOrderProducts($type, $sdate, $edate, $objPage, $graph = true) {
-	list($where, $arrval) = lfGetWhereMember('create_date', $sdate, $edate, $type);
-	
-	$sql = "SELECT T1.product_id, T1.product_code, T2.name, T1.products_count, T1.order_count, T1.price, T1.total ";
-	$sql.= "FROM ( ";
-	$sql.= "SELECT product_id, product_code, price, ";
-	$sql.= "COUNT(*) AS order_count, ";
-	$sql.= "SUM(quantity) AS products_count, ";
-	$sql.= "(price * sum(quantity)) AS total ";
-	$sql.= "FROM dtb_order_detail WHERE order_id IN (SELECT order_id FROM dtb_order WHERE $where ) ";
-	$sql.= "GROUP BY product_id, product_code, price ";
-	$sql.= ") ";
-	$sql.= "AS T1 LEFT JOIN dtb_products AS T2 USING (product_id) WHERE T2.name IS NOT NULL AND status = 1 ORDER BY T1.total DESC ";
-	
-	if($_POST['mode'] != "csv") {
-		$sql.= "LIMIT " . PRODUCTS_TOTAL_MAX;
-	}
-	
-	$objQuery = new SC_Query();
-	$objPage->arrResults = $objQuery->getall($sql, $arrval);
-	
-	// ±ß¥°¥é¥Õ¤ÎÀ¸À®
-	if($graph) {
-		$image_key = "products_" . $type;
-		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
-	}
-	
-	return $objPage;
-}
-
-/** ¿¦¶ÈÊÌ½¸·× **/
-function lfGetOrderJob($type, $sdate, $edate, $objPage, $graph = true) {
-	global $arrJob;	
-		
-	list($where, $arrval) = lfGetWhereMember('T2.create_date', $sdate, $edate, $type);
-	
-	$sql = "SELECT job, count(*) AS order_count, SUM(total) AS total, (AVG(total)) AS total_average ";
-	$sql.= "FROM dtb_customer AS T1 LEFT JOIN dtb_order AS T2 USING ( customer_id ) WHERE $where AND T2.del_flg = 0 ";
-	$sql.= "GROUP BY job ORDER BY total DESC";
-	
-	$objQuery = new SC_Query();
-	$objPage->arrResults = $objQuery->getall($sql, $arrval);
-			
-	$max = count($objPage->arrResults);
-	for($i = 0; $i < $max; $i++) {
-		$job_key = $objPage->arrResults[$i]['job'];
-		if($job_key != "") {
-			$objPage->arrResults[$i]['job_name'] = $arrJob[$job_key];
-		} else {
-			$objPage->arrResults[$i]['job_name'] = "Ì¤²óÅú";
-		}
-	}
-	
-	// ±ß¥°¥é¥Õ¤ÎÀ¸À®	
-	if($graph) {
-		$image_key = "job_" . $type;
-		$objPage->tpl_image = lfGetGraphPie($objPage->arrResults, "job_name", $image_key, "(Çä¾åÈæÎ¨)", $sdate, $edate);
-	}
-	
-	return $objPage;
-}
-
-/** Ç¯ÂåÊÌ½¸·× **/
-function lfGetOrderAge($type, $sdate, $edate, $objPage, $graph = true) {
-
-	list($where, $arrval) = lfGetWhereMember('order_date', $sdate, $edate, $type, "member");
-	
-	$sql = "SELECT SUM(order_count) AS order_count, SUM(total) AS total, start_age, end_age ";
-	$sql.= "FROM dtb_bat_order_daily_age WHERE $where ";
-	$sql.= "GROUP BY start_age, end_age ORDER BY start_age, end_age";
-
-	$objQuery = new SC_Query();
-	$objPage->arrResults = $objQuery->getall($sql, $arrval);
-	
-	$max = count($objPage->arrResults);
-	for($i = 0; $i < $max; $i++) {
-		if($objPage->arrResults[$i]['order_count'] > 0) {
-			$objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['order_count']);
-		}	
-		$start_age = $objPage->arrResults[$i]['start_age'];
-		$end_age = $objPage->arrResults[$i]['end_age'];
-		if($start_age != "" || $end_age != "") {
-			if($end_age != 999) {
-				$objPage->arrResults[$i]['age_name'] = $start_age . "¡Á" . $end_age . "ºÐ";
+		mb_ereg("^(.*[\/])(.*)",$data_, $matches);
+		$data=$matches[2];
+		if( is_dir( $data_ ) ){
+			$mess = lfCopyDir( $data_.'/', $des.$data.'/', $mess);
+		}else{
+			if(!$override && file_exists($des.$data)) {
+				$mess.= $des.$data . "¡§¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹\n";
 			} else {
-				$objPage->arrResults[$i]['age_name'] = $start_age . "ºÐ¡Á";
+				if(@copy( $data_, $des.$data)) {
+					$mess.= $des.$data . "¡§¥³¥Ô¡¼À®¸ù\n";
+				} else {
+					$mess.= $des.$data . "¡§¥³¥Ô¡¼¼ºÇÔ\n";
+				}
 			}
-		} else {
-			$objPage->arrResults[$i]['age_name'] = "Ì¤²óÅú";
-		}
-	}
-	
-	// ËÀ¥°¥é¥Õ¤ÎÀ¸À®
-	if($graph) {
-		$image_key = "age_" . $type;
-		$xtitle = "(Ç¯Îð)";
-		$ytitle = "(Çä¾å¹ç·×)";
-		$objPage->tpl_image = lfGetGraphBar($objPage->arrResults, "age_name", $image_key, $xtitle, $ytitle, $sdate, $edate);
-	}
-	
-	return $objPage;
-}
-
-/** ´ü´ÖÊÌ½¸·× **/
-function lfGetOrderTerm($type, $sdate, $edate, $objPage, $graph = true) {
-		
-		$tmp_col = "sum(total_order) as total_order, sum(men) as men, sum(women) as women,";
-		$tmp_col.= "sum(men_member) as men_member, sum(men_nonmember) as men_nonmember,";
-		$tmp_col.= "sum(women_member) as women_member, sum(women_nonmember) as women_nonmember,";
-		$tmp_col.= "sum(total) as total, (avg(total_average)) as total_average";
-		$objQuery = new SC_Query();
-		
-		switch($type) {
-		// ·îÊÌ
-		case 'month':
-			$col = $tmp_col . ",key_month";
-			$objQuery->setgroupby("key_month");
-			$objQuery->setOrder("key_month");
-			$objPage->keyname = "key_month";
-			$objPage->tpl_tail = "·î";
-			$from = "dtb_bat_order_daily";
-			$xtitle = "(·îÊÌ)";
-			$ytitle = "(Çä¾å¹ç·×)";
-			break;
-		// Ç¯ÊÌ
-		case 'year':
-			$col = $tmp_col . ",key_year";
-			$objQuery->setgroupby("key_year");
-			$objQuery->setOrder("key_year");
-			$objPage->keyname = "key_year";
-			$objPage->tpl_tail = "Ç¯";
-			$from = "dtb_bat_order_daily";
-			$xtitle = "(Ç¯ÊÌ)";
-			$ytitle = "(Çä¾å¹ç·×)";
-			break;
-		// ÍËÆüÊÌ
-		case 'wday':
-			$col = $tmp_col . ",key_wday, wday";
-			$objQuery->setgroupby("key_wday, wday");
-			$objQuery->setOrder("wday");
-			$objPage->keyname = "key_wday";
-			$objPage->tpl_tail = "ÍËÆü";
-			$from = "dtb_bat_order_daily";
-			$xtitle = "(ÍËÆüÊÌ)";
-			$ytitle = "(Çä¾å¹ç·×)";
-			break;
-		// »þ´ÖÊÌ
-		case 'hour':
-			$col = $tmp_col . ",hour";
-			$objQuery->setgroupby("hour");
-			$objQuery->setOrder("hour");
-			$objPage->keyname = "hour";
-			$objPage->tpl_tail = "»þ";
-			$from = "dtb_bat_order_daily_hour";
-			$xtitle = "(»þ´ÖÊÌ)";
-			$ytitle = "(Çä¾å¹ç·×)";
-			break;
-		default:
-			$col = "*";
-			$objQuery->setOrder("key_day");
-			$objPage->keyname = "key_day";
-			$from = "dtb_bat_order_daily";
-			$xtitle = "(ÆüÊÌ)";
-			$ytitle = "(Çä¾å¹ç·×)";
-			break;
-		}
-		
-
-	// ¼èÆÀÆüÉÕ¤Î»ØÄê
-		if($sdate != "") {
-			if ($where != "") {
-				$where.= " AND ";
-			}			
-			$where.= " order_date >= '". $sdate ."'";
-		}
-		
-		if($edate != "") {
-			if ($where != "") {
-				$where.= " AND ";
-			}
-			$edate = date("Y/m/d",strtotime("1 day" ,strtotime($edate)));
-			$where.= " order_date < date('" . $edate ."')";
-		}
-		
-		// ¸¡º÷·ë²Ì¤Î¼èÆÀ
-		$objPage->arrResults = $objQuery->select($col, $from, $where, $arrval);
-		
-		// ÀÞ¤ìÀþ¥°¥é¥Õ¤ÎÀ¸À®	
-		if($graph) {
-			$image_key = "term_" . $type;
-			$objPage->tpl_image = lfGetGraphLine($objPage->arrResults, $objPage->keyname, $image_key, $xtitle, $ytitle, $sdate, $edate);
-		}
-		
-		// ¸¡º÷·ë²Ì¤¬0¤Ç¤Ê¤¤¾ì¹ç
-		if(count($objPage->arrResults) > 0) {
-			// ºÇ½ª½¸·×¹Ô¼èÆÀ¤¹¤ë
-			$col = $tmp_col;
-			$objQuery = new SC_Query();
-			$arrRet = $objQuery->select($col, $from, $where, $arrval);
-			$arrRet[0][$objPage->keyname] = "¹ç·×";
-			$objPage->arrResults[] = $arrRet[0];
-		}
-
-		// Ê¿¶ÑÃÍ¤Î·×»»
-		$max = count($objPage->arrResults);
-		for($i = 0; $i < $max; $i++) {
-			if($objPage->arrResults[$i]['total_order'] > 0) {
-				$objPage->arrResults[$i]['total_average'] = intval($objPage->arrResults[$i]['total'] / $objPage->arrResults[$i]['total_order']);
-			}
-		}
-		
-		return $objPage;
-}
-
+			$mod=stat($data_ );
+		}
+	}
+	umask($oldmask);
+	return $mess;
+}
 ?>
