- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/html/admin/system/bkup.php
r12157 r15078 8 8 require_once(DATA_PATH. "module/Tar.php"); 9 9 10 // ¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹10 //ページ管理クラス 11 11 class LC_Page { 12 // ¥³¥ó¥¹¥È¥é¥¯¥¿12 //コンストラクタ 13 13 function LC_Page() { 14 // ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê14 //メインテンプレートの指定 15 15 $this->tpl_mainpage = 'system/bkup.tpl'; 16 16 $this->tpl_subnavi = 'system/subnavi.tpl'; 17 17 $this->tpl_mainno = 'system'; 18 18 $this->tpl_subno = 'bkup'; 19 $this->tpl_subtitle = ' ¥Ð¥Ã¥¯¥¢¥Ã¥×´ÉÍý';19 $this->tpl_subtitle = 'バックアップ管理'; 20 20 21 21 $this->bkup_dir = USER_PATH . "bkup/"; … … 27 27 $objQuery = new SC_Query(); 28 28 29 // ¥»¥Ã¥·¥ç¥ó¥¯¥é¥¹29 // セッションクラス 30 30 $objSess = new SC_Session(); 31 // ǧ¾Ú²ÄÈݤÎȽÄê31 // 認証可否の判定 32 32 sfIsSuccess($objSess); 33 33 34 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë34 // バックアップテーブルがなければ作成する 35 35 lfCreateBkupTable(); 36 36 37 37 switch($_POST['mode']) { 38 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºîÀ®¤¹¤ë38 // バックアップを作成する 39 39 case 'bkup': 40 // ÆþÎÏʸ»úÎó¤ÎÊÑ´¹40 // 入力文字列の変換 41 41 $arrData = lfConvertParam($_POST); 42 42 43 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯43 // エラーチェック 44 44 $arrErr = lfCheckError($arrData); 45 45 46 // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¥Ð¥Ã¥¯¥¢¥Ã¥×½èÍý¤ò¹Ô¤¦46 // エラーがなければバックアップ処理を行う 47 47 if (count($arrErr) <= 0) { 48 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ®48 // バックアップファイル作成 49 49 $arrErr = lfCreateBkupData($arrData['bkup_name']); 50 50 51 // DB ¤Ë¥Ç¡¼¥¿¹¹¿·51 // DBにデータ更新 52 52 if (count($arrErr) <= 0) { 53 53 lfUpdBkupData($arrData); … … 56 56 } 57 57 58 $objPage->tpl_onload = "alert(' ¥Ð¥Ã¥¯¥¢¥Ã¥×´°Î»¤·¤Þ¤·¤¿');";58 $objPage->tpl_onload = "alert('バックアップ完了しました');"; 59 59 }else{ 60 60 $arrForm = $arrData; … … 63 63 break; 64 64 65 // ¥ê¥¹¥È¥¢65 // リストア 66 66 case 'restore': 67 67 case 'restore_config': … … 74 74 break; 75 75 76 // ºï½ü76 // 削除 77 77 case 'delete': 78 78 $del_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 79 // ¥Õ¥¡¥¤¥ë¤Îºï½ü79 // ファイルの削除 80 80 if(is_file($del_file)){ 81 81 $ret = unlink($del_file); 82 82 } 83 83 84 // DB ¤«¤éºï½ü84 // DBから削除 85 85 $delsql = "DELETE FROM dtb_bkup WHERE bkup_name = ?"; 86 86 $objQuery->query($delsql, array($_POST['list_name'])); … … 88 88 break; 89 89 90 // ¥À¥¦¥ó¥í¡¼¥É90 // ダウンロード 91 91 case 'download' : 92 92 $filename = $_POST['list_name'] . ".tar.gz"; 93 93 $dl_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz"; 94 94 95 // ¥À¥¦¥ó¥í¡¼¥É³«»Ï95 // ダウンロード開始 96 96 Header("Content-disposition: attachment; filename=${filename}"); 97 97 Header("Content-type: application/octet-stream; name=${filename}"); … … 105 105 } 106 106 107 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë107 // バックアップリストを取得する 108 108 $arrBkupList = lfGetBkupData("ORDER BY create_date DESC"); 109 // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ËÅϤ¹¥Ç¡¼¥¿¤ò¥»¥Ã¥È109 // テンプレートファイルに渡すデータをセット 110 110 $objPage->arrErr = $arrErr; 111 111 $objPage->arrForm = $arrForm; 112 112 $objPage->arrBkupList = $arrBkupList; 113 113 114 $objView->assignobj($objPage); // ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë115 $objView->display(MAIN_FRAME); // ¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ114 $objView->assignobj($objPage); //変数をテンプレートにアサインする 115 $objView->display(MAIN_FRAME); //テンプレートの出力 116 116 117 117 //------------------------------------------------------------------------------------------------------- 118 /* ¼èÆÀʸ»úÎó¤ÎÊÑ´¹*/118 /* 取得文字列の変換 */ 119 119 function lfConvertParam($array) { 120 120 /* 121 * ʸ»úÎó¤ÎÊÑ´¹122 * K : ¡ÖȾ³Ñ(Êݶ¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹123 * C : ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹124 * V : ÂùÅÀÉÕ¤¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹125 * n : ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(Êݶ¸)¡×¤ËÊÑ´¹126 * a : Á´³Ñ±Ñ¿ô»ú¤òȾ³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë121 * 文字列の変換 122 * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換 123 * C : 「全角ひら仮名」を「全角かた仮名」に変換 124 * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します 125 * n : 「全角」数字を「半角(ハンカク)」に変換 126 * a : 全角英数字を半角英数字に変換する 127 127 */ 128 128 $arrConvList['bkup_name'] = "a"; 129 129 $arrConvList['bkup_memo'] = "KVa"; 130 130 131 // ʸ»úÊÑ´¹131 // 文字変換 132 132 foreach ($arrConvList as $key => $val) { 133 // POST ¤µ¤ì¤Æ¤¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£133 // POSTされてきた値のみ変換する。 134 134 if(isset($array[$key])) { 135 135 $array[$key] = mb_convert_kana($array[$key] ,$val); … … 139 139 } 140 140 141 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯141 // エラーチェック 142 142 function lfCheckError($array){ 143 143 $objErr = new SC_CheckError($array); 144 144 145 $objErr->doFunc(array(" ¥Ð¥Ã¥¯¥¢¥Ã¥×̾", "bkup_name", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK","NO_SPTAB","ALNUM_CHECK"));146 $objErr->doFunc(array(" ¥Ð¥Ã¥¯¥¢¥Ã¥×¥á¥â", "bkup_memo", MTEXT_LEN), array("MAX_LENGTH_CHECK"));147 148 // ½ÅÊ£¥Á¥§¥Ã¥¯145 $objErr->doFunc(array("バックアップ名", "bkup_name", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK","NO_SPTAB","ALNUM_CHECK")); 146 $objErr->doFunc(array("バックアップメモ", "bkup_memo", MTEXT_LEN), array("MAX_LENGTH_CHECK")); 147 148 // 重複チェック 149 149 $ret = lfGetBkupData("WHERE bkup_name = ?", array($array['bkup_name'])); 150 150 if (count($ret) > 0) { 151 $objErr->arrErr['bkup_name'] = " ¥Ð¥Ã¥¯¥¢¥Ã¥×̾¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£ÊÌ̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£";151 $objErr->arrErr['bkup_name'] = "バックアップ名が重複しています。別名を入力してください。"; 152 152 } 153 153 … … 155 155 } 156 156 157 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ®157 // バックアップファイル作成 158 158 function lfCreateBkupData($bkup_name){ 159 159 global $objPage; … … 167 167 $bkup_dir = $bkup_dir . $bkup_name . "/"; 168 168 169 // Á´¥Æ¡¼¥Ö¥ë¼èÆÀ169 // 全テーブル取得 170 170 $arrTableList = lfGetTableList(); 171 171 172 // ³Æ¥Æ¡¼¥Ö¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë172 // 各テーブル情報を取得する 173 173 foreach($arrTableList as $key => $val){ 174 174 175 175 if ($val != "dtb_bkup") { 176 176 177 // ¼«Æ°ºÎÈÖ·¿¤Î¹½À®¤ò¼èÆÀ¤¹¤ë177 // 自動採番型の構成を取得する 178 178 $csv_autoinc .= lfGetAutoIncrement($val); 179 179 180 // Á´¥Ç¡¼¥¿¤ò¼èÆÀ180 // 全データを取得 181 181 if ($val == "dtb_pagelayout"){ 182 182 $arrData = $objQuery->getAll("SELECT * FROM $val ORDER BY page_id"); … … 185 185 } 186 186 187 // CSV ¥Ç¡¼¥¿À¸À®187 // CSVデータ生成 188 188 if (count($arrData) > 0) { 189 189 190 // ¥«¥é¥à¤òCSV·Á¼°¤ËÀ°¤¨¤ë190 // カラムをCSV形式に整える 191 191 $arrKyes = sfGetCommaList(array_keys($arrData[0]), false); 192 192 193 // ¥Ç¡¼¥¿¤òCSV·Á¼°¤ËÀ°¤¨¤ë193 // データをCSV形式に整える 194 194 $data = ""; 195 195 foreach($arrData as $data_key => $data_val){ … … 198 198 199 199 } 200 // CSV ½ÐÎϥǡ¼¥¿À¸À®200 // CSV出力データ生成 201 201 $csv_data .= $val . "\n"; 202 202 $csv_data .= $arrKyes . "\n"; … … 205 205 } 206 206 207 // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ°207 // タイムアウトを防ぐ 208 208 sfFlush(); 209 209 } … … 213 213 $csv_autoinc_file = $bkup_dir . "autoinc_data.csv"; 214 214 mb_internal_encoding(CHAR_CODE); 215 // CSV ½ÐÎÏ216 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë215 // CSV出力 216 // ディレクトリが存在していなければ作成する 217 217 if (!is_dir(dirname($csv_file))) { 218 218 $err = mkdir(dirname($csv_file)); 219 219 } 220 220 if ($err) { 221 // data ¤òCSV½ÐÎÏ221 // dataをCSV出力 222 222 $fp = fopen($csv_file,"w"); 223 223 if($fp) { … … 228 228 } 229 229 230 // ¼«Æ°ºÎÈÖ¤òCSV½ÐÎÏ230 // 自動採番をCSV出力 231 231 $fp = fopen($csv_autoinc_file,"w"); 232 232 if($fp) { … … 238 238 } 239 239 240 // ³Æ¼ï¥Õ¥¡¥¤¥ë¥³¥Ô¡¼240 // 各種ファイルコピー 241 241 if ($err) { 242 // ¾¦ÉʲèÁü¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼243 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë242 // 商品画像ファイルをコピー 243 // ディレクトリが存在していなければ作成する 244 244 $image_dir = $bkup_dir . "save_image/"; 245 245 if (!is_dir(dirname($image_dir))) $err = mkdir(dirname($image_dir)); … … 247 247 $copy_mess = sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess); 248 248 249 // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼250 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë249 // テンプレートファイルをコピー 250 // ディレクトリが存在していなければ作成する 251 251 $templates_dir = $bkup_dir . "templates/"; 252 252 if (!is_dir(dirname($templates_dir))) $err = mkdir(dirname($templates_dir)); … … 254 254 $copy_mess = sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess); 255 255 256 // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼257 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë256 // インクルードファイルをコピー 257 // ディレクトリが存在していなければ作成する 258 258 $inc_dir = $bkup_dir . "include/"; 259 259 if (!is_dir(dirname($inc_dir))) $err = mkdir(dirname($inc_dir)); … … 261 261 $copy_mess = sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess); 262 262 263 // CSS ¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼264 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë263 // CSSファイルをコピー 264 // ディレクトリが存在していなければ作成する 265 265 $css_dir = $bkup_dir . "css/"; 266 266 if (!is_dir(dirname($css_dir))) $err = mkdir(dirname($css_dir)); … … 268 268 $copy_mess = sfCopyDir("../../user_data/css/",$css_dir, $copy_mess); 269 269 270 // °µ½Ì¥Õ¥é¥°TRUE¤Ïgzip°µ½Ì¤ò¤ª¤³¤Ê¤¦270 //圧縮フラグTRUEはgzip圧縮をおこなう 271 271 $tar = new Archive_Tar($objPage->bkup_dir . $bkup_name.".tar.gz", TRUE); 272 272 273 //bkup ¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë273 //bkupフォルダに移動する 274 274 chdir($objPage->bkup_dir); 275 275 276 // °µ½Ì¤ò¤ª¤³¤Ê¤¦276 //圧縮をおこなう 277 277 $zip = $tar->create("./" . $bkup_name . "/"); 278 278 279 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü279 // バックアップデータの削除 280 280 if ($zip) sfDelFile($bkup_dir); 281 281 } 282 282 283 283 if (!$err) { 284 $arrErr['bkup_name'] = " ¥Ð¥Ã¥¯¥¢¥Ã¥×¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";285 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü284 $arrErr['bkup_name'] = "バックアップに失敗しました。"; 285 // バックアップデータの削除 286 286 sfDelFile($bkup_dir); 287 287 } … … 290 290 } 291 291 292 /* ÇÛÎó¤ÎÍ×ÁǤòCSV¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/292 /* 配列の要素をCSVフォーマットで出力する。*/ 293 293 function lfGetCSVList($array) { 294 294 if (count($array) > 0) { … … 305 305 } 306 306 307 // Á´¥Æ¡¼¥Ö¥ë¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë307 // 全テーブルリストを取得する 308 308 function lfGetTableList(){ 309 309 $objQuery = new SC_Query(); … … 319 319 $arrRet = sfSwapArray($arrRet); 320 320 321 // ¥¡¼¤ò¼èÆÀ321 // キーを取得 322 322 $arrKey = array_keys($arrRet); 323 323 … … 327 327 } 328 328 329 // ¼«Æ°ºÎÈÖ·¿¤òCSV½ÐÎÏ·Á¼°¤ËÊÑ´¹¤¹¤ë329 // 自動採番型をCSV出力形式に変換する 330 330 function lfGetAutoIncrement($table_name){ 331 331 $arrColList = lfGetColumnList($table_name); … … 350 350 } 351 351 352 // ¥Æ¡¼¥Ö¥ë¹½À®¤ò¼èÆÀ¤¹¤ë352 // テーブル構成を取得する 353 353 function lfGetColumnList($table_name){ 354 354 $objQuery = new SC_Query(); … … 380 380 } 381 381 382 // ¼«Æ°ºÎÈÖ·¿¤ÎÃͤò¼èÆÀ¤¹¤ë382 // 自動採番型の値を取得する 383 383 function lfGetAutoIncrementVal($table_name , $colname = ""){ 384 384 $objQuery = new SC_Query(); … … 395 395 } 396 396 397 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ë¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë397 // バックアップテーブルにデータを更新する 398 398 function lfUpdBkupData($data){ 399 399 $objQuery = new SC_Query(); … … 403 403 } 404 404 405 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë405 // バックアップテーブルからデータを取得する 406 406 function lfGetBkupData($where = "", $data = array()){ 407 407 $objQuery = new SC_Query(); … … 415 415 } 416 416 417 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¥¢¤¹¤ë417 // バックアップファイルをリストアする 418 418 function lfRestore($bkup_name){ 419 419 global $objPage; … … 424 424 $bkup_dir = $objPage->bkup_dir . $bkup_name . "/"; 425 425 426 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë426 //バックアップフォルダに移動する 427 427 chdir($objPage->bkup_dir); 428 428 429 // °µ½Ì¥Õ¥é¥°TRUE¤Ïgzip²òÅà¤ò¤ª¤³¤Ê¤¦429 //圧縮フラグTRUEはgzip解凍をおこなう 430 430 $tar = new Archive_Tar($bkup_name . ".tar.gz", TRUE); 431 431 432 // »ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥ÀÆâ¤Ë²òÅह¤ë432 //指定されたフォルダ内に解凍する 433 433 $err = $tar->extract("./"); 434 434 435 // ̵»ö²òÅà¤Ç¤¤ì¤Ð¡¢¥ê¥¹¥È¥¢¤ò¹Ô¤¦435 // 無事解凍できれば、リストアを行う 436 436 if ($err) { 437 437 438 // ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó³«»Ï438 // トランザクション開始 439 439 $objQuery->begin(); 440 440 441 // DB ¤ò¥¯¥ê¥¢441 // DBをクリア 442 442 $err = lfDeleteAll($objQuery); 443 443 444 // INSERT ¼Â¹Ô444 // INSERT実行 445 445 if ($err) $err = lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv"); 446 446 447 // ¼«Æ°ºÎÈÖ¤ÎÃͤò¥»¥Ã¥È447 // 自動採番の値をセット 448 448 if ($err) lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv"); 449 449 450 // ³Æ¼ï¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼450 // 各種ファイルのコピー 451 451 if ($err) { 452 // ²èÁü¤Î¥³¥Ô¡¼452 // 画像のコピー 453 453 $image_dir = $bkup_dir . "save_image/"; 454 454 $copy_mess = ""; 455 455 $copy_mess = sfCopyDir($image_dir, "../../upload/save_image/", $copy_mess, true); 456 456 457 // ¥Æ¥ó¥×¥ì¡¼¥È¤Î¥³¥Ô¡¼457 // テンプレートのコピー 458 458 $tmp_dir = $bkup_dir . "templates/"; 459 459 $copy_mess = ""; 460 460 $copy_mess = sfCopyDir($tmp_dir, "../../user_data/templates/", $copy_mess, true); 461 461 462 // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼462 // インクルードファイルのコピー 463 463 $inc_dir = $bkup_dir . "include/"; 464 464 $copy_mess = ""; 465 465 $copy_mess = sfCopyDir($inc_dir, "../../user_data/include/", $copy_mess, true); 466 466 467 // CSS ¤Î¥³¥Ô¡¼467 // CSSのコピー 468 468 $css_dir = $bkup_dir . "css/"; 469 469 $copy_mess = ""; 470 470 $copy_mess = sfCopyDir($css_dir, "../../user_data/css/", $copy_mess, true); 471 471 472 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü472 // バックアップデータの削除 473 473 sfDelFile($bkup_dir); 474 474 } 475 475 476 // ¥ê¥¹¥È¥¢À®¸ù¤Ê¤é¥³¥ß¥Ã¥È¼ºÇԤʤé¥í¡¼¥ë¥Ð¥Ã¥¯476 // リストア成功ならコミット失敗ならロールバック 477 477 if ($err) { 478 478 $objQuery->commit(); 479 $objPage->restore_msg = " ¥ê¥¹¥È¥¢½ªÎ»¤·¤Þ¤·¤¿¡£";479 $objPage->restore_msg = "リストア終了しました。"; 480 480 $objPage->restore_err = true; 481 481 }else{ 482 482 $objQuery->rollback(); 483 $objPage->restore_msg = " ¥ê¥¹¥È¥¢¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";483 $objPage->restore_msg = "リストアに失敗しました。"; 484 484 $objPage->restore_name = $bkup_name; 485 485 $objPage->restore_err = false; … … 488 488 } 489 489 490 // CSV ¥Õ¥¡¥¤¥ë¤«¤é¥¤¥ó¥µ¡¼¥È¼Â¹Ô490 // CSVファイルからインサート実行 491 491 function lfExeInsertSQL($objQuery, $csv){ 492 492 global $objPage; … … 500 500 $mode = $objPage->mode; 501 501 502 // csv ¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ502 // csvファイルからデータの取得 503 503 $fp = fopen($csv, "r"); 504 504 while (!feof($fp)) { 505 505 $data = fgetcsv($fp, 1000000); 506 506 507 // ¶õÇò¹Ô¤Î¤È¤¤Ï¥Æ¡¼¥Ö¥ëÊѹ¹507 //空白行のときはテーブル変更 508 508 if (count($data) <= 1 and $data[0] == "") { 509 509 $base_sql = ""; … … 513 513 } 514 514 515 // ¥Æ¡¼¥Ö¥ë¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥Æ¡¼¥Ö¥ë̾¥»¥Ã¥È515 // テーブルフラグがたっていない場合にはテーブル名セット 516 516 if (!$tbl_flg) { 517 517 $base_sql = "INSERT INTO $data[0] "; … … 525 525 } 526 526 527 // ¥«¥é¥à¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥«¥é¥à¥»¥Ã¥È527 // カラムフラグがたっていない場合にはカラムセット 528 528 if (!$col_flg) { 529 529 if ($mode != "restore_config"){ … … 538 538 } 539 539 540 // ¥¤¥ó¥µ¡¼¥È¤¹¤ëÃͤò¥»¥Ã¥È540 // インサートする値をセット 541 541 $sql = $base_sql . "VALUES ( ? "; 542 542 for($i = 1; $i < count($data); $i++){ … … 547 547 $err = $objQuery->query($sql, $data); 548 548 549 // ¥¨¥é¡¼¤¬¤¢¤ì¤Ð½ªÎ»549 // エラーがあれば終了 550 550 if ($err->message != ""){ 551 551 sfErrorHeader(">> " . $objQuery->getlastquery(false)); … … 554 554 555 555 if ($pagelayout_flg) { 556 // dtb_pagelayout ¤Î¾ì¹ç¤Ë¤ÏºÇ½é¤Î¥Ç¡¼¥¿¤Ïpage_id = 0¤Ë¤¹¤ë556 // dtb_pagelayoutの場合には最初のデータはpage_id = 0にする 557 557 $sql = "UPDATE dtb_pagelayout SET page_id = '0'"; 558 558 $objQuery->query($sql); … … 560 560 } 561 561 562 // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ°562 // タイムアウトを防ぐ 563 563 sfFlush(); 564 564 } … … 568 568 } 569 569 570 // ¼«Æ°ºÎÈÖ¤ò¥»¥Ã¥È570 // 自動採番をセット 571 571 function lfSetAutoInc($objQuery, $csv){ 572 // csv ¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ572 // csvファイルからデータの取得 573 573 $arrCsvData = file($csv); 574 574 … … 581 581 } 582 582 583 // DB ¤òÁ´¤Æ¥¯¥ê¥¢¤¹¤ë583 // DBを全てクリアする 584 584 function lfDeleteAll($objQuery){ 585 585 $ret = true; … … 588 588 589 589 foreach($arrTableList as $key => $val){ 590 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ïºï½ü¤·¤Ê¤¤590 // バックアップテーブルは削除しない 591 591 if ($val != "dtb_bkup") { 592 592 $trun_sql = "DELETE FROM $val;"; … … 600 600 } 601 601 602 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë602 // バックアップテーブルを作成する 603 603 function lfCreateBkupTable(){ 604 604 $objQuery = new SC_Query(); 605 605 606 // ¥Æ¡¼¥Ö¥ë¤Î¸ºß¥Á¥§¥Ã¥¯606 // テーブルの存在チェック 607 607 $arrTableList = lfGetTableList(); 608 608 609 609 if(!in_array("dtb_bkup", $arrTableList)){ 610 // ¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®610 // 存在していなければ作成 611 611 $cre_sql = " 612 612 create table dtb_bkup
Note: See TracChangeset
for help on using the changeset viewer.