source: temp/trunk/html/admin/system/bkup.php @ 9331

Revision 9331, 15.2 KB checked in by kakinaka, 20 years ago (diff)

blank

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once(DATA_PATH. "module/Tar.php");
9
10//¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹
11class LC_Page {
12    //¥³¥ó¥¹¥È¥é¥¯¥¿
13    function LC_Page() {
14        //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê
15        $this->tpl_mainpage = 'system/bkup.tpl';
16        $this->tpl_subnavi = 'system/subnavi.tpl';
17        $this->tpl_mainno = 'system';       
18        $this->tpl_subno = 'bkup';
19        $this->tpl_subtitle = '¥Ð¥Ã¥¯¥¢¥Ã¥×´ÉÍý';
20       
21        $this->bkup_dir = USER_PATH . "bkup/";
22    }
23}
24
25$objPage = new LC_Page();
26$objView = new SC_AdminView();
27$objQuery = new SC_Query();
28
29// ¥»¥Ã¥·¥ç¥ó¥¯¥é¥¹
30$objSess = new SC_Session();
31// ǧ¾Ú²ÄÈݤÎȽÄê
32sfIsSuccess($objSess);
33
34// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
35lfCreateBkupTable();
36
37switch($_POST['mode']) {
38// ¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºîÀ®¤¹¤ë
39case 'bkup':
40    // ÆþÎÏʸ»úÎó¤ÎÊÑ´¹
41    $arrData = lfConvertParam($_POST);
42
43    // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
44    $arrErr = lfCheckError($arrData);
45
46    // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¥Ð¥Ã¥¯¥¢¥Ã¥×½èÍý¤ò¹Ô¤¦   
47    if (count($arrErr) <= 0) {
48        // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ®
49        $arrErr = lfCreateBkupData($arrData['bkup_name']);
50       
51        // DB¤Ë¥Ç¡¼¥¿¹¹¿·
52        if (count($arrErr) <= 0) {
53            lfUpdBkupData($arrData);
54        }else{
55            $arrForm = $arrData;
56        }
57       
58        $objPage->tpl_onload = "alert('¥Ð¥Ã¥¯¥¢¥Ã¥×´°Î»¤·¤Þ¤·¤¿');";
59    }else{
60        $arrForm = $arrData;
61    }
62
63    break;
64   
65// ¥ê¥¹¥È¥¢
66case 'restore':
67case 'restore_config':
68    if ($_POST['mode'] == 'restore_config') {
69        $objPage->mode = "restore_config";
70    }
71
72    lfRestore($_POST['list_name']);
73
74    break;
75   
76// ºï½ü
77case 'delete':
78    $del_file = $objPage->bkup_dir.$_POST['list_name'] . ".tar.gz";
79    // ¥Õ¥¡¥¤¥ë¤Îºï½ü
80    if(is_file($del_file)){
81        $ret = unlink($del_file);
82    }
83
84    // DB¤«¤éºï½ü
85    $delsql = "DELETE FROM dtb_bkup WHERE bkup_name = ?";
86    $objQuery->query($delsql, array($_POST['list_name']));
87
88    break;
89   
90// ¥À¥¦¥ó¥í¡¼¥É
91case 'download' :
92    $filename = $_POST['list_name'] . ".tar.gz";
93    $dl_file = $objPage->bkup_dir.$_POST['list_name'];
94   
95    // ¥À¥¦¥ó¥í¡¼¥É³«»Ï
96    Header("Content-disposition: attachment; filename=${filename}");
97    Header("Content-type: application/octet-stream; name=${filename}");
98//  Header("Cache-Control: ");
99//  Header("Pragma: ");
100    header("Content-Length: " .filesize($dl_file));
101   
102/*
103    header("Content-Disposition: attachment;filename=" .$filename. "\"");
104    header("Content-Length: " .filesize($dl_file));
105    header("Content-Type: application/octet-stream; name=" .$filename. "\"");
106*/
107    readfile ($dl_file);
108   
109   
110    exit();
111
112    break;
113
114default:
115    break;
116}
117
118// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë
119$arrBkupList = lfGetBkupData("ORDER BY create_date DESC");
120// ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ËÅϤ¹¥Ç¡¼¥¿¤ò¥»¥Ã¥È
121$objPage->arrErr = $arrErr;
122$objPage->arrForm = $arrForm;
123$objPage->arrBkupList = $arrBkupList;
124
125$objView->assignobj($objPage);      //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë
126$objView->display(MAIN_FRAME);      //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ
127
128//-------------------------------------------------------------------------------------------------------
129/* ¼èÆÀʸ»úÎó¤ÎÊÑ´¹ */
130function lfConvertParam($array) {
131    /*
132     *  ʸ»úÎó¤ÎÊÑ´¹
133     *  K :  ¡ÖȾ³Ñ(ŽÊŽÝ޶ޏ)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
134     *  C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
135     *  V :  ÂùÅÀÉÕ¤­¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹ 
136     *  n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(ŽÊŽÝ޶ޏ)¡×¤ËÊÑ´¹
137     *  a :  Á´³Ñ±Ñ¿ô»ú¤òȾ³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë
138     */
139    $arrConvList['bkup_name'] = "a";
140    $arrConvList['bkup_memo'] = "KVa";
141   
142    // ʸ»úÊÑ´¹
143    foreach ($arrConvList as $key => $val) {
144        // POST¤µ¤ì¤Æ¤­¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£
145        if(isset($array[$key])) {
146            $array[$key] = mb_convert_kana($array[$key] ,$val);
147        }
148    }
149    return $array;
150}
151
152// ¥¨¥é¡¼¥Á¥§¥Ã¥¯
153function lfCheckError($array){
154    $objErr = new SC_CheckError($array);
155   
156    $objErr->doFunc(array("¥Ð¥Ã¥¯¥¢¥Ã¥×̾", "bkup_name", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK","NO_SPTAB","ALNUM_CHECK"));
157    $objErr->doFunc(array("¥Ð¥Ã¥¯¥¢¥Ã¥×¥á¥â", "bkup_memo", MTEXT_LEN), array("MAX_LENGTH_CHECK"));
158   
159    // ½ÅÊ£¥Á¥§¥Ã¥¯
160    $ret = lfGetBkupData("WHERE bkup_name = ?", array($array['bkup_name']));
161    if (count($ret) > 0) {
162        $objErr->arrErr['bkup_name'] = "¥Ð¥Ã¥¯¥¢¥Ã¥×̾¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£ÊÌ̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£";
163    }
164
165    return $objErr->arrErr;
166}
167
168// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ëºîÀ®
169function lfCreateBkupData($bkup_name){
170    global $objPage;
171    $objQuery = new SC_Query();
172    $csv_data = "";
173    $csv_autoinc = "";
174    $err = true;
175   
176    $bkup_dir = $objPage->bkup_dir;
177    if (!is_dir(dirname($bkup_dir))) $err = mkdir(dirname($bkup_dir));     
178    $bkup_dir = $bkup_dir . $bkup_name . "/";
179
180    // Á´¥Æ¡¼¥Ö¥ë¼èÆÀ
181    $arrTableList = lfGetTableList();
182   
183    // ³Æ¥Æ¡¼¥Ö¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë
184    foreach($arrTableList as $key => $val){
185       
186        if ($val != "dtb_bkup") {
187           
188            // ¼«Æ°ºÎÈÖ·¿¤Î¹½À®¤ò¼èÆÀ¤¹¤ë
189            $csv_autoinc .= lfGetAutoIncrement($val);
190           
191            // Á´¥Ç¡¼¥¿¤ò¼èÆÀ
192            if ($val == "dtb_pagelayout"){
193                $arrData = $objQuery->getAll("SELECT * FROM $val ORDER BY page_id");
194            }else{
195                $arrData = $objQuery->getAll("SELECT * FROM $val");
196            }
197           
198            // CSV¥Ç¡¼¥¿À¸À®
199            if (count($arrData) > 0) {
200               
201                // ¥«¥é¥à¤òCSV·Á¼°¤ËÀ°¤¨¤ë
202                $arrKyes = sfGetCommaList(array_keys($arrData[0]), false);
203               
204                // ¥Ç¡¼¥¿¤òCSV·Á¼°¤ËÀ°¤¨¤ë
205                $data = "";
206                foreach($arrData as $data_key => $data_val){
207                    $data .= sfGetCSVList($arrData[$data_key]);
208                }
209                // CSV½ÐÎϥǡ¼¥¿À¸À®
210                $csv_data .= $val . "\n";
211                $csv_data .= $arrKyes . "\n";
212                $csv_data .= $data;
213                $csv_data .= "\n";
214            }   
215           
216            // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ°
217            sfFlush();
218        }
219    }
220
221    $csv_file = $bkup_dir . "bkup_data.csv";
222    $csv_autoinc_file = $bkup_dir . "autoinc_data.csv";
223    mb_internal_encoding(CHAR_CODE);
224    // CSV½ÐÎÏ
225    // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
226    if (!is_dir(dirname($csv_file))) {
227        $err = mkdir(dirname($csv_file));
228    }
229    if ($err) {
230        // data¤òCSV½ÐÎÏ
231        $fp = fopen($csv_file,"w");
232        if($fp) {
233            if($csv_data != ""){
234                $err = fwrite($fp, $csv_data);
235            }
236            fclose($fp);
237        }
238       
239        // ¼«Æ°ºÎÈÖ¤òCSV½ÐÎÏ
240        $fp = fopen($csv_autoinc_file,"w");
241        if($fp) {
242            if($csv_autoinc != ""){
243                $err = fwrite($fp, $csv_autoinc);
244            }
245            fclose($fp);
246        }
247    }
248
249    // ³Æ¼ï¥Õ¥¡¥¤¥ë¥³¥Ô¡¼
250    if ($err) {
251        // ¾¦ÉʲèÁü¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
252        // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
253        $image_dir = $bkup_dir . "save_image/";
254        if (!is_dir(dirname($image_dir))) $err = mkdir(dirname($image_dir));       
255        $copy_mess = "";
256        $copy_mess = sfCopyDir("../../upload/save_image/",$image_dir, $copy_mess);
257       
258        // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
259        // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
260        $templates_dir = $bkup_dir . "templates/";
261        if (!is_dir(dirname($templates_dir))) $err = mkdir(dirname($templates_dir));       
262        $copy_mess = "";
263        $copy_mess = sfCopyDir("../../user_data/templates/",$templates_dir, $copy_mess);
264       
265        // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
266        // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
267        $inc_dir = $bkup_dir . "include/";
268        if (!is_dir(dirname($inc_dir))) $err = mkdir(dirname($inc_dir));       
269        $copy_mess = "";
270        $copy_mess = sfCopyDir("../../user_data/include/",$inc_dir, $copy_mess);
271   
272        // CSS¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
273        // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
274        $css_dir = $bkup_dir . "css/";
275        if (!is_dir(dirname($css_dir))) $err = mkdir(dirname($css_dir));       
276        $copy_mess = "";
277        $copy_mess = sfCopyDir("../../user_data/css/",$css_dir, $copy_mess);
278
279        //°µ½Ì¥Õ¥é¥°TRUE¤Ïgzip°µ½Ì¤ò¤ª¤³¤Ê¤¦
280        $tar = new Archive_Tar($objPage->bkup_dir . $bkup_name.".tar.gz", TRUE);
281
282        //bkup¥Õ¥©¥ë¥À¤Ë°Üư¤¹¤ë
283        chdir($objPage->bkup_dir);
284
285        //°µ½Ì¤ò¤ª¤³¤Ê¤¦
286        $zip = $tar->create("./" . $bkup_name . "/");
287
288        // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü
289        if ($zip) sfDelFile($bkup_dir);
290    }
291
292    if (!$err) {
293        $arrErr['bkup_name'] = "¥Ð¥Ã¥¯¥¢¥Ã¥×¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
294        // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü
295        sfDelFile($bkup_dir);
296    }
297   
298    return $arrErr;
299}
300
301/* ÇÛÎó¤ÎÍ×ÁǤòCSV¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë¡£*/
302function lfGetCSVList($array) {
303    if (count($array) > 0) {
304        foreach($array as $key => $val) {
305            if ($val == "") {
306                $line .= "NULL,";
307            }else{
308                $data = str_replace("'", "\'", $val);
309                $line .= "'".$data."',";
310            }
311        }
312        $line = ereg_replace(",$", "\n", $line);
313        return $line;
314    }else{
315        return false;
316    }
317}
318
319// Á´¥Æ¡¼¥Ö¥ë¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë
320function lfGetTableList(){
321    $objQuery = new SC_Query();
322   
323    if(DB_TYPE == "pgsql"){
324        $sql = "SELECT tablename FROM pg_tables WHERE tableowner = ? ORDER BY tablename ; ";
325        $arrRet = $objQuery->getAll($sql, array(DB_USER));
326        $arrRet = sfSwapArray($arrRet);
327        $arrRet = $arrRet['tablename'];
328    }else if(DB_TYPE == "mysql"){
329        $sql = "SHOW TABLES;";
330        $arrRet = $objQuery->getAll($sql);
331        $arrRet = sfSwapArray($arrRet);
332       
333        // ¥­¡¼¤ò¼èÆÀ
334        $arrKey = array_keys($arrRet);
335       
336        $arrRet = $arrRet[$arrKey[0]];
337    }
338    return $arrRet;
339}
340
341// ¼«Æ°ºÎÈÖ·¿¤òCSV½ÐÎÏ·Á¼°¤ËÊÑ´¹¤¹¤ë
342function lfGetAutoIncrement($table_name){
343    $arrColList = lfGetColumnList($table_name);
344    $ret = "";
345   
346    if(DB_TYPE == "pgsql"){
347        $match = 'nextval(\'';
348    }else if(DB_TYPE == "mysql"){
349        $match = "auto_incr";
350    }
351
352    foreach($arrColList['col_def'] as $key => $val){
353       
354        if (substr($val,0,9) == $match) {
355            $col = $arrColList['col_name'][$key];
356            $autoVal = lfGetAutoIncrementVal($table_name, $col);
357            $ret .= "$table_name,$col,$autoVal\n";
358        }
359    }
360   
361    return $ret;
362}
363
364// ¥Æ¡¼¥Ö¥ë¹½À®¤ò¼èÆÀ¤¹¤ë
365function lfGetColumnList($table_name){
366    $objQuery = new SC_Query();
367
368    if(DB_TYPE == "pgsql"){
369        $sql = "SELECT
370                    a.attname, t.typname, a.attnotnull, d.adsrc as defval, a.atttypmod, a.attnum as fldnum, e.description
371                FROM
372                    pg_class c,
373                    pg_type t,
374                    pg_attribute a left join pg_attrdef d on (a.attrelid=d.adrelid and a.attnum=d.adnum)
375                                   left join pg_description e on (a.attrelid=e.objoid and a.attnum=e.objsubid)
376                WHERE (c.relname=?) AND (c.oid=a.attrelid) AND (a.atttypid=t.oid) AND a.attnum > 0
377                ORDER BY fldnum";
378        $arrColList = $objQuery->getAll($sql, array($table_name));
379        $arrColList = sfSwapArray($arrColList);
380       
381        $arrRet['col_def'] = $arrColList['defval'];
382        $arrRet['col_name'] = $arrColList['attname'];
383    }else if(DB_TYPE == "mysql"){
384        $sql = "SHOW COLUMNS FROM $table_name";
385        $arrColList = $objQuery->getAll($sql);
386        $arrColList = sfSwapArray($arrColList);
387       
388        $arrRet['col_def'] = $arrColList['Extra'];
389        $arrRet['col_name'] = $arrColList['Field'];
390    }
391    return $arrRet;
392}
393
394// ¼«Æ°ºÎÈÖ·¿¤ÎÃͤò¼èÆÀ¤¹¤ë
395function lfGetAutoIncrementVal($table_name , $colname = ""){
396    $objQuery = new SC_Query();
397    $ret = "";
398
399    if(DB_TYPE == "pgsql"){
400        $ret = $objQuery->nextval($table_name, $colname) - 1;
401    }else if(DB_TYPE == "mysql"){
402        $sql = "SHOW TABLE STATUS LIKE ?";
403        $arrData = $objQuery->getAll($sql, array($table_name));
404        $ret = $arrData[0]['Auto_increment'];
405    }
406    return $ret;
407}
408
409// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ë¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
410function lfUpdBkupData($data){
411    $objQuery = new SC_Query();
412   
413    $sql = "INSERT INTO dtb_bkup (bkup_name,bkup_memo,create_date) values (?,?,now())";
414    $objQuery->query($sql, array($data['bkup_name'],$data['bkup_memo']));
415}
416
417// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
418function lfGetBkupData($where = "", $data = array()){
419    $objQuery = new SC_Query();
420   
421    $sql = "SELECT bkup_name, bkup_memo, create_date FROM dtb_bkup ";
422    if ($where != "")   $sql .= $where;
423   
424    $ret = $objQuery->getall($sql,$data);
425   
426    return $ret;
427}
428
429// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¥¢¤¹¤ë
430function lfRestore($bkup_name){
431    global $objPage;
432    $objQuery = new SC_Query("", false);
433    $csv_data = "";
434    $err = true;
435   
436    $bkup_dir = $objPage->bkup_dir . $bkup_name . "/";
437   
438    //¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥©¥ë¥À¤Ë°Üư¤¹¤ë
439    chdir($objPage->bkup_dir);
440   
441    //°µ½Ì¥Õ¥é¥°TRUE¤Ïgzip²òÅà¤ò¤ª¤³¤Ê¤¦
442    $tar = new Archive_Tar($bkup_name . ".tar.gz", TRUE);
443   
444    //»ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥ÀÆâ¤Ë²òÅह¤ë
445    $err = $tar->extract("./");
446   
447    // ̵»ö²òÅà¤Ç¤­¤ì¤Ð¡¢¥ê¥¹¥È¥¢¤ò¹Ô¤¦
448    if ($err) {
449       
450        // ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó³«»Ï
451        $objQuery->begin();
452       
453        // DB¤ò¥¯¥ê¥¢
454        $err = lfDeleteAll($objQuery);
455       
456        // INSERT¼Â¹Ô
457        if ($err) $err = lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv");
458
459        // ¼«Æ°ºÎÈÖ¤ÎÃͤò¥»¥Ã¥È
460        if ($err) lfSetAutoInc($objQuery, $bkup_dir . "autoinc_data.csv");
461
462        // ³Æ¼ï¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
463        if ($err) {
464            // ²èÁü¤Î¥³¥Ô¡¼
465            $image_dir = $bkup_dir . "save_image/";
466            $copy_mess = "";
467            $copy_mess = sfCopyDir($image_dir, "../../upload/save_image/", $copy_mess, true);       
468   
469            // ¥Æ¥ó¥×¥ì¡¼¥È¤Î¥³¥Ô¡¼
470            $tmp_dir = $bkup_dir . "templates/";
471            $copy_mess = "";
472            $copy_mess = sfCopyDir($tmp_dir, "../../user_data/templates/", $copy_mess, true);       
473           
474            // ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
475            $inc_dir = $bkup_dir . "include/";
476            $copy_mess = "";
477            $copy_mess = sfCopyDir($inc_dir, "../../user_data/include/", $copy_mess, true);     
478           
479            // CSS¤Î¥³¥Ô¡¼
480            $css_dir = $bkup_dir . "css/";
481            $copy_mess = "";
482            $copy_mess = sfCopyDir($css_dir, "../../user_data/css/", $copy_mess, true);     
483
484            // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Ç¡¼¥¿¤Îºï½ü
485            sfDelFile($bkup_dir);
486        }
487
488        // ¥ê¥¹¥È¥¢À®¸ù¤Ê¤é¥³¥ß¥Ã¥È¼ºÇԤʤé¥í¡¼¥ë¥Ð¥Ã¥¯
489        if ($err) {
490            $objQuery->commit();
491            $objPage->restore_msg = "¥ê¥¹¥È¥¢½ªÎ»¤·¤Þ¤·¤¿¡£";
492            $objPage->restore_err = true;
493        }else{
494            $objQuery->rollback();
495            $objPage->restore_msg = "¥ê¥¹¥È¥¢¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£";
496            $objPage->restore_name = $bkup_name;
497            $objPage->restore_err = false;
498        }
499    }
500}
501
502// CSV¥Õ¥¡¥¤¥ë¤«¤é¥¤¥ó¥µ¡¼¥È¼Â¹Ô
503function lfExeInsertSQL($objQuery, $csv){
504    global $objPage;
505
506    $sql = "";
507    $base_sql = "";
508    $tbl_flg = false;
509    $col_flg = false;
510    $ret = true;
511    $pagelayout_flg = false;
512    $mode = $objPage->mode;
513   
514    // csv¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ
515    $fp = fopen($csv, "r");
516    while (!feof($fp)) {
517        $data = fgetcsv($fp, 1000000);
518       
519        //¶õÇò¹Ô¤Î¤È¤­¤Ï¥Æ¡¼¥Ö¥ëÊѹ¹
520        if (count($data) <= 1 and $data[0] == "") {
521            $base_sql = "";
522            $tbl_flg = false;
523            $col_flg = false;
524            continue;
525        }
526       
527        // ¥Æ¡¼¥Ö¥ë¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥Æ¡¼¥Ö¥ë̾¥»¥Ã¥È
528        if (!$tbl_flg) {
529            $base_sql = "INSERT INTO $data[0] ";
530            $tbl_flg = true;
531           
532            if($data[0] == "dtb_pagelayout"){
533                $pagelayout_flg = true;
534            }
535           
536            continue;
537        }
538       
539        // ¥«¥é¥à¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥«¥é¥à¥»¥Ã¥È
540        if (!$col_flg) {
541            if ($mode != "restore_config"){
542                $base_sql .= " ( $data[0] ";
543                for($i = 1; $i < count($data); $i++){
544                    $base_sql .= "," . $data[$i];
545                }
546                $base_sql .= " ) ";
547            }
548            $col_flg = true;
549            continue;
550        }
551
552        // ¥¤¥ó¥µ¡¼¥È¤¹¤ëÃͤò¥»¥Ã¥È
553        $sql = $base_sql . "VALUES ( ? ";
554        for($i = 1; $i < count($data); $i++){
555            $sql .= ", ?";
556        }
557        $sql .= " );";
558        $err = $objQuery->query($sql, $data);
559
560        // ¥¨¥é¡¼¤¬¤¢¤ì¤Ð½ªÎ»
561        if ($err->message != ""){
562            $objQuery->getlastquery();
563            return false;
564        }
565       
566        if ($pagelayout_flg) {
567            // dtb_pagelayout¤Î¾ì¹ç¤Ë¤ÏºÇ½é¤Î¥Ç¡¼¥¿¤Ïpage_id = 0¤Ë¤¹¤ë
568            $sql = "UPDATE dtb_pagelayout SET page_id = '0'";
569            $objQuery->query($sql);
570            $pagelayout_flg = false;
571        }
572
573        // ¥¿¥¤¥à¥¢¥¦¥È¤òËɤ°
574        sfFlush();
575    }
576    fclose($fp);
577   
578    return $ret;
579}
580
581// ¼«Æ°ºÎÈÖ¤ò¥»¥Ã¥È
582function lfSetAutoInc($objQuery, $csv){
583    // csv¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤Î¼èÆÀ
584    $arrCsvData = file($csv);
585
586    foreach($arrCsvData as $key => $val){
587        $arrData = split(",", trim($val));
588       
589        if ($arrData[2] == 0)   $arrData[2] = 1;
590        $objQuery->setval($arrData[0], $arrData[1], $arrData[2]);
591    }
592}
593
594// DB¤òÁ´¤Æ¥¯¥ê¥¢¤¹¤ë
595function lfDeleteAll($objQuery){
596    $ret = true;
597
598    $arrTableList = lfGetTableList();
599   
600    foreach($arrTableList as $key => $val){
601        // ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤Ïºï½ü¤·¤Ê¤¤
602        if ($val != "dtb_bkup") {
603            $trun_sql = "DELETE FROM $val;";
604            $ret = $objQuery->query($trun_sql);
605           
606            if (!$ret) return $ret;
607        }
608    }
609   
610    return $ret;
611}
612
613// ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë
614function lfCreateBkupTable(){
615    $objQuery = new SC_Query();
616   
617    // ¥Æ¡¼¥Ö¥ë¤Î¸ºß¥Á¥§¥Ã¥¯
618    $arrTableList = lfGetTableList();
619
620    if(!in_array("dtb_bkup", $arrTableList)){
621        // ¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®
622        $cre_sql = "
623            create table dtb_bkup
624            (
625                bkup_name   text,
626                bkup_memo   text,
627                create_date timestamp
628            );
629        ";
630       
631        $objQuery->query($cre_sql);
632    }
633}
634
635?>
Note: See TracBrowser for help on using the repository browser.