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

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