source: temp/trunk/html/admin/system/Copy of update.php @ 1328

Revision 1328, 8.0 KB checked in by naka, 20 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2$now_dir = realpath(dirname(__FILE__));
3require_once($now_dir . "/../../../data/lib/slib.php");
4require_once($now_dir . "/../../../data/class/SC_View.php");
5require_once($now_dir . "/../../../data/class/SC_Query.php");
6require_once($now_dir . "/../../../data/class/SC_CheckError.php");
7require_once($now_dir . "/../../../data/class/SC_FormParam.php");
8require_once($now_dir . "/../../../data/class/SC_Customer.php");
9require_once($now_dir . "/../../../data/class/SC_Cookie.php");
10//require_once($now_dir . "/../../../data/module/Archive/Tar.php");
11
12//¥Ú¡¼¥¸´ÉÍý¥¯¥é¥¹
13class LC_Page {
14    //¥³¥ó¥¹¥È¥é¥¯¥¿
15    function LC_Page() {
16        //¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê
17        $this->tpl_mainpage = 'system/update.tpl';
18        $this->tpl_subnavi = 'system/subnavi.tpl';
19        $this->tpl_mainno = 'system';       
20        $this->tpl_subno = 'update';
21        $this->tpl_subtitle = '¥¢¥Ã¥×¥Ç¡¼¥È´ÉÍý';
22    }
23}
24
25$objPage = new LC_Page();
26$objView = new SC_AdminView();
27$objQuery = new SC_Query();
28
29/*
30//¥¢¥Ã¥×¥Ç¡¼¥È¾ðÊó¤ò¼èÆÀ
31$fp = fopen("csv.php", "r");
32$i = 0;
33$j = 0;
34$k = 0;
35//¥Õ¥¡¥¤¥ë¼èÆÀÀ®¸ù
36if($fp) {
37    //CSV¾ðÊó¤òÇÛÎó¤Ë³ÊǼ
38    while(!feof($fp)) {
39        $line = fgetcsv($fp, 40000);
40        $arrRet[$i]['update_id'] = $line[0];        //¥¢¥Ã¥×¥Ç¡¼¥Èµ¡Ç½ID
41        $arrRet[$i]['file_name'] = $line[1];        //¥Õ¥¡¥¤¥ë̾
42        $arrRet[$i]['func_name'] = $line[2];        //µ¡Ç½Ì¾
43        $arrRet[$i]['func_explain'] = $line[3];     //µ¡Ç½ÀâÌÀ
44        $arrRet[$i]['version'] = $line[4];          //¥Ð¡¼¥¸¥ç¥ó
45        $arrRet[$i]['update_date'] = $line[5];      //ºÇ½ª¹¹¿·Æü»þ
46        if($i >= 1) {
47            $arrval = array($arrRet[$i]['update_id'], $arrRet[$i]['version']);
48            //´û¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤«¤É¤¦¤«¥Á¥§¥Ã¥¯
49            $arrGet = $objQuery->select("*", "dtb_update_list", "update_id = ? AND version = ? ", $arrval);
50            //¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß
51            if(count($arrGet) > 0) {
52                $arrInstalled[$k] = $arrGet[0];
53                $k++;
54            } else {
55                $arrUpList[$j] = $arrRet[$i];
56                $j++;
57            }
58        }
59        $i++;
60    }
61    //¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß
62    $objPage->arrInstalled = $arrInstalled;
63    //¥¢¥Ã¥×¥Ç¡¼¥È²Äǽµ¡Ç½°ìÍ÷
64    $objPage->arrUpList = $arrUpList;
65}
66
67//³Îǧ²èÌÌ
68if($_POST['mode'] == 'confirm' && sfIsInt($_POST['update_id'])) {
69    //¥Æ¥ó¥×¥ì¡¼¥È»ØÄê
70    $objPage->tpl_mainpage = "system/update_confirm.tpl";
71    //¥¢¥Ã¥×¥Ç¡¼¥Èµ¡Ç½ID
72    $update_id = $_POST['update_id'];
73    //¥Õ¥¡¥¤¥ë̾
74    $comp_file = trim($arrRet[$update_id]['file_name']);
75    //FTPÀܳ
76    $con = ftp_connect("localhost");
77    if($con != false) {
78        //FTP¥í¥°¥¤¥óÀ®¸ù
79        if(ftp_login($con, "osuser", "password")) {
80            //¥í¡¼¥«¥ë¤ËÊݸ¤¹¤ë¥Ñ¥¹
81            $objPage->local_save_dir = ROOT_DIR . "data/install/";
82            //¥í¡¼¥«¥ë¤ËÊݸ¤¹¤ë¥Õ¥¡¥¤¥ë̾¤ò¥Ñ¥¹»ØÄê
83            $local_file = $objPage->local_save_dir . $comp_file;
84            //FTP¥À¥¦¥ó¥í¡¼¥ÉÀ®¸ù
85            if(ftp_get($con, $local_file, $comp_file, FTP_BINARY)) {
86                //FTPÀܳÀÚÃÇ
87                ftp_quit($con);
88                //¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Ë°Ü¹Ô
89                $current_dir = getcwd();
90                //¥Ç¥£¥ì¥¯¥È¥ê¤Î°Ü¹Ô
91                chdir(ROOT_DIR . "data/install/");
92                //¥¢¡¼¥«¥¤¥Ö´ÉÍý¥¯¥é¥¹
93                $objTar = new Archive_Tar($comp_file);
94                //²òÅà¸å¤Î¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ(³ÈÄ¥»Ò¤òºï½ü¤·¤¿¥Õ¥¡¥¤¥ë)
95                $extract_file = ereg_replace("\.tar\.gz|\.tar|\.gz|\.tgz", "", $comp_file);
96                //¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤òɽ¼¨
97                $arrRet = $objTar->listcontent();
98                foreach($arrRet as $data) {
99                    //PHP¥Õ¥¡¥¤¥ë¤â¤·¤¯¤Ïtpl¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
100                    if(ereg("\.php$|\.tpl$", $data['filename'])) {
101                        $main_file = ereg_replace($extract_file . "/", "", $data['filename']);
102                        $arrFile[]['main_file'] = ROOT_DIR . $main_file;
103                    }
104                    //sql¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
105                    if(ereg("\.sql$", $data['filename'])) {
106                        //¥Õ¥¡¥¤¥ë̾¤«¤éDB̾¤ò¼èÆÀ¤¹¤ë
107                        $sql_file = ereg_replace($extract_file . "/", "", $data['filename']);
108                        $db_name = ereg_replace("\.sql$", "", $sql_file);
109                        $arrFile[]['sql_file'] = $db_name;
110                    }
111                }
112                $objPage->arrFile = $arrFile;
113                //°µ½Ì¥Õ¥¡¥¤¥ë¤Îºï½ü
114                unlink($comp_file);
115                //¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸µ¤ËÌ᤹
116                chdir($current_dir);
117            } else {
118                //FTP¥À¥¦¥ó¥í¡¼¥É¥¨¥é¡¼
119                sfDispSiteError(FTP_DOWNLOAD_ERROR);
120            }
121        } else {
122            //FTP¥í¥°¥¤¥ó¥¨¥é¡¼
123            sfDispSiteError(FTP_LOGIN_ERROR);
124        }
125    } else {
126        //FTPÀܳ¥¨¥é¡¼
127        sfDispSiteError(FTP_CONNECT_ERROR);
128    }
129}
130
131
132
133//¥¢¥Ã¥×¥Ç¡¼¥Èµ¡Ç½¤Î¥¤¥ó¥¹¥È¡¼¥ë
134if($_POST['mode'] == 'install' && sfIsInt($_POST['update_id'])) {
135    //¥¢¥Ã¥×¥Ç¡¼¥Èµ¡Ç½ID
136    $update_id = $_POST['update_id'];
137    //¥Õ¥¡¥¤¥ë̾
138    $comp_file = trim($arrRet[$update_id]['file_name']);
139    //FTPÀܳ
140    $con = ftp_connect("localhost");
141    if($con != false) {
142        //FTP¥í¥°¥¤¥óÀ®¸ù
143        if(ftp_login($con, "osuser", "password")) {
144            //¥í¡¼¥«¥ë¤ËÊݸ¤¹¤ë¥Ñ¥¹¤ò»ØÄê
145            $objPage->local_save_dir = ROOT_DIR . "data/install/";
146            //¥í¡¼¥«¥ë¤ËÊݸ¤¹¤ë¥Õ¥¡¥¤¥ë̾¤ò¥Ñ¥¹»ØÄê
147            $local_file = ROOT_DIR . "data/install/" . $comp_file;
148            //FTP¥À¥¦¥ó¥í¡¼¥ÉÀ®¸ù
149            if(ftp_get($con, $local_file, $comp_file, FTP_BINARY)) {
150                //FTPÀܳÀÚÃÇ
151                ftp_quit($con);
152                //¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Ë°Ü¹Ô
153                $current_dir = getcwd();
154                //¥Ç¥£¥ì¥¯¥È¥ê¤Î°Ü¹Ô
155                chdir(ROOT_DIR . "data/install/");
156                //¥¢¡¼¥«¥¤¥Ö´ÉÍý¥¯¥é¥¹
157                $objTar = new Archive_Tar($comp_file, true);
158                //¥¨¥é¡¼¤Î¾ÜºÙ¤òÊÖ¤¹
159                //$objTar->setErrorHandling(PEAR_ERROR_PRINT);
160                //²òÅàÀ®¸ù
161                if($objTar->extract("./")) {
162                    //°µ½Ì¥Õ¥¡¥¤¥ë¤òºï½ü
163                    unlink($comp_file);
164                    //²òÅà¸å¤Î¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ(³ÈÄ¥»Ò¤òºï½ü¤·¤¿¥Õ¥¡¥¤¥ë)
165                    $extract_file = ereg_replace("\.tar\.gz|\.tar|\.gz|\.tgz", "", $comp_file);
166                    //²òÅà¸å¤Î¿Æ¥Õ¥¡¥¤¥ë¤òÊÑ¿ô¤ËÅϤ¹
167                    $extract_top_file = $extract_file;
168                    //¥¤¥ó¥¹¥È¡¼¥ëÀ®¸ù¤Î¥Õ¥é¥°
169                    $install_flag = true;
170                    //²òÅà¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë
171                    $flag = lfSetExtractFile($extract_file, $extract_top_file, $install_flag);
172                    //¥Õ¥¡¥¤¥ë¤Î¾å½ñ¤­¤¬À®¸ù
173                    if($flag) {
174                        //³ÊǼ¤¹¤ë¥­¡¼¤ÈÃͤò»ØÄê
175                        $sqlval['update_id'] = $update_id;
176                        $sqlval['func_name'] = $arrRet[$update_id]['func_name'];
177                        $sqlval['func_explain'] = $arrRet[$update_id]['func_explain'];
178                        $sqlval['version'] = $arrRet[$update_id]['version'];
179                        $sqlval['update_date'] = 'now()';
180                       
181                        //¥¢¥Ã¥×¥Ç¡¼¥È´ÉÍý¥Æ¡¼¥Ö¥ë¤Ë¾ðÊó¤ò³ÊǼ
182                        $objQuery->insert("dtb_update_list", $sqlval);
183                        //¥Õ¥¡¥¤¥ë¤Îºï½ü
184                        system("rm -rf ". $extract_file);
185                        //¾ðÊó¤ò¹¹¿·
186                        sfReload();
187                    } else {
188                        sfDispSiteError(WRITE_FILE_ERROR);
189                    }
190
191                } else {
192                    //¥Õ¥¡¥¤¥ë²òÅ२¥é¡¼
193                    sfDispSiteError(EXTRACT_ERROR);
194                }
195                //¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸µ¤ËÌ᤹
196                chdir($current_dir);
197               
198            } else {
199                //FTP¥À¥¦¥ó¥í¡¼¥É¥¨¥é¡¼
200                sfDispSiteError(FTP_DOWNLOAD_ERROR);
201            }
202        } else {
203            //FTP¥í¥°¥¤¥ó¥¨¥é¡¼
204            sfDispSiteError(FTP_LOGIN_ERROR);
205        }
206    } else {
207        //FTPÀܳ¥¨¥é¡¼
208        sfDispSiteError(FTP_CONNECT_ERROR);
209    }
210}
211*/
212$objView->assignobj($objPage);      //ÊÑ¿ô¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥¢¥µ¥¤¥ó¤¹¤ë
213$objView->display(MAIN_FRAME);      //¥Æ¥ó¥×¥ì¡¼¥È¤Î½ÐÎÏ
214
215//-------------------------------------------------------------------------------------------------------
216
217//²òÅà¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¡¢¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë
218function lfSetExtractFile($extract_file, $extract_top_file, $install_success) {
219    //¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð
220    if(!is_dir($extract_file)) {
221        return false;
222    }
223
224    //¥Ç¥£¥ì¥¯¥È¥ê¤ò³«¤¯
225    if($handle = opendir($extract_file)) {
226        //¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¿È¤òÆÉ¤ß¹þ¤à
227        while($file = readdir($handle)) {
228            //'.'¤È'..'¥Õ¥¡¥¤¥ë¤Ï½ü³°
229            if($file != "." && $file != "..") {
230                //¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë
231                if(is_dir($extract_file . "/" . $file)) {
232                    //ºÆµ¢¸Æ¤Ó½Ð¤·
233                    lfSetExtractFile($extract_file . "/" . $file, $extract_top_file, $install_success);
234                } else {
235                    //¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
236                    if(is_file($extract_file . "/" . $file)) {
237                        //sql¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
238                        if(ereg("\.sql$", $file)) {
239                            //¥Õ¥¡¥¤¥ë¤ò¼è¤êÆþ¤ì¤ë
240                            require_once($extract_file . "/" . $file);
241                            //¥¯¥¨¥ê¡¼¼Â¹Ô¥¯¥é¥¹
242                            $objQuery = new SC_Query;
243                            //¥¯¥¨¥ê¡¼¤Î¼Â¹Ô
244                            $objQuery->query($sql);
245                        } else {
246                            //²òÅà¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò»ØÄê
247                            $replace_file = ereg_replace("^" . $extract_top_file . "/", "", $extract_file);
248                            //¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼(¾å½ñ¤­)¤¹¤ë
249                            if(!copy($extract_file . "/" . $file, ROOT_DIR . $replace_file . "/" . $file)) {
250                                $install_success = false;
251                            }
252                        }
253                    }
254                }
255            }
256        }
257        //¥Ç¥£¥ì¥¯¥È¥ê¤òÊĤ¸¤ë
258        closedir($handle);
259    } else {
260        $install_success = false;
261    }
262    return $install_success;
263   
264}   
265
266?>
Note: See TracBrowser for help on using the repository browser.