Changeset 5642 for temp/trunk/html
- Timestamp:
- 2006/09/24 20:39:04 (20 years ago)
- File:
-
- 1 edited
-
temp/trunk/html/admin/system/bkup.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
temp/trunk/html/admin/system/bkup.php
r5641 r5642 273 273 } 274 274 275 276 277 278 279 280 281 282 283 284 285 286 // ¹¹¿·¥Õ¥¡¥¤¥ë¤Î¼èÆÀ287 function lfCopyUpdateFile($val) {288 global $objPage;289 290 $src_path = sfRmDupSlash(UPDATE_HTTP . $val . ".txt");291 $dst_path = sfRmDupSlash(ROOT_DIR . $val);292 $flg_ok = true; // ½èÍý¤ÎÀ®¸ùȽÄê293 294 $src_fp = @fopen($src_path, "rb");295 296 if(!$src_fp) {297 sfErrorHeader(">> " . $src_path . "¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");298 $flg_ok = false;299 } else {300 // ¥Õ¥¡¥¤¥ë¤ò¤¹¤Ù¤ÆÆÉ¤ß¹þ¤à301 $contents = '';302 while (!feof($src_fp)) {303 $contents .= fread($src_fp, 1024);304 }305 fclose($src_fp);306 307 // ¥Ç¥£¥ì¥¯¥È¥êºîÀ®¤ò»î¤ß¤ë308 lfMakeDirectory($dst_path);309 // ¥Õ¥¡¥¤¥ë½ñ¹þ¤ß310 $dst_fp = @fopen($dst_path, "wb");311 if(!$dst_fp) {312 sfErrorHeader(">> " . $dst_path . "¤ò¥ª¡¼¥×¥ó¤Ç¤¤Þ¤»¤ó¡£");313 $flg_ok = false;314 } else {315 fwrite($dst_fp, $contents);316 fclose($dst_fp);317 }318 }319 320 if($flg_ok) {321 $objPage->update_mess.= ">> " . $dst_path . "¡§¥³¥Ô¡¼À®¸ù<br>";322 } else {323 $objPage->update_mess.= ">> " . $dst_path . "¡§¥³¥Ô¡¼¼ºÇÔ<br>";324 }325 326 return $flg_ok;327 }328 329 // ¤¹¤Ù¤Æ¤Î¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë330 function lfMakeDirectory($path) {331 $pos = 0;332 $cnt = 0; // ̵¸Â¥ë¡¼¥×Âкö333 $len = strlen($path); // ̵¸Â¥ë¡¼¥×Âкö334 335 while($cnt <= $len) {336 $pos = strpos($path, "/", $pos);337 // ¤³¤³¤Ç¤ÎȽÄê¤Ï¡¢Åù¹æ3¤Ä¤ò»ÈÍÑ338 if($pos === false) {339 // ¥¹¥é¥Ã¥·¥å¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¥ë¡¼¥×¤«¤éÈ´¤±¤ë340 break;341 }342 $pos++; // ʸ»úȯ¸«°ÌÃÖ¤ò°ìʸ»ú¿Ê¤á¤ë343 $dir = substr($path, 0, $pos);344 345 // ¤¹¤Ç¤Ë¸ºß¤¹¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë346 if(!file_exists($dir)) {347 mkdir($dir);348 }349 $cnt++; // ̵¸Â¥ë¡¼¥×Âкö350 }351 }352 353 // ¹¹¿·¾ðÊó¤òºÇ¿·¤Ë¤¹¤ë354 function lfLoadUpdateList() {355 $objQuery = new SC_Query();356 $path = UPDATE_HTTP . "update.txt";357 $fp = @fopen($path, "rb");358 359 if(!$fp) {360 sfErrorHeader(">> " . $path . "¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");361 } else {362 while (!feof($fp)) {363 $arrCSV = fgetcsv($fp, UPDATE_CSV_LINE_MAX);364 // ¥«¥é¥à¿ô¤¬Àµ¾ï¤Ç¤¢¤Ã¤¿¾ì¹ç¤Î¤ß365 if(count($arrCSV) == UPDATE_CSV_COL_MAX) {366 // ¼èÆÀ¤·¤¿¥¢¥Ã¥×¥Ç¡¼¥È¾ðÊó¤òDB¤Ë½ñ¤¹þ¤à367 $sqlval['module_id'] = $arrCSV[0];368 $sqlval['module_name'] = $arrCSV[1];369 $sqlval['latest_version'] = $arrCSV[3];370 $sqlval['module_explain'] = $arrCSV[4];371 $sqlval['main_php'] = $arrCSV[5];372 $sqlval['extern_php'] = $arrCSV[6];373 $sqlval['install_sql'] = $arrCSV[7];374 $sqlval['uninstall_sql'] = $arrCSV[8];375 $sqlval['other_files'] = $arrCSV[9];376 $sqlval['del_flg'] = $arrCSV[10];377 $sqlval['update_date'] = "now()";378 $sqlval['release_date'] = $arrCSV[12];379 // ´û¸¥ì¥³¡¼¥É¤Î¥Á¥§¥Ã¥¯380 $cnt = $objQuery->count("dtb_update", "module_id = ?", array($sqlval['module_id']));381 if($cnt > 0) {382 // ¤¹¤Ç¤Ë¼èÆÀ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¹¹¿·¤¹¤ë¡£383 $objQuery->update("dtb_update", $sqlval, "module_id = ?", array($sqlval['module_id']));384 } else {385 // ¿·µ¬¥ì¥³¡¼¥É¤ÎÄɲÃ386 $sqlval['create_date'] = "now()";387 $objQuery->insert("dtb_update", $sqlval);388 }389 }390 }391 fclose($fp);392 }393 }394 395 // ¥¤¥ó¥¹¥È¡¼¥ë½èÍý396 function lfInstallModule() {397 global $objPage;398 399 $objQuery = new SC_Query();400 $arrRet = $objQuery->select("module_id, extern_php, other_files, install_sql, latest_version", "dtb_update", "module_id = ?", array($_POST['module_id']));401 $flg_ok = true; // ½èÍý¤ÎÀ®¸ùȽÄê402 403 if(count($arrRet) > 0) {404 $arrFiles = array();405 if($arrRet[0]['other_files'] != "") {406 $arrFiles = split("\|", $arrRet[0]['other_files']);407 }408 $arrFiles[] = $arrRet[0]['extern_php'];409 foreach($arrFiles as $val) {410 // ¹¹¿·¥Õ¥¡¥¤¥ë¤Î¼èÆÀ411 $ret=lfCopyUpdateFile($val);412 if(!$ret) {413 $flg_ok = false;414 }415 }416 } else {417 sfErrorHeader(">> Âоݤε¡Ç½¤Ï¡¢ÇÛÉÛ¤ò½ªÎ»¤·¤Æ¤ª¤ê¤Þ¤¹¡£");418 $flg_ok = false;419 }420 421 // ɬÍפÊSQLʸ¤Î¼Â¹Ô422 if($arrRet[0]['install_sql'] != "") {423 // SQLʸ¼Â¹Ô¡¢¥Ñ¥é¡¼¥á¡¼¥¿¤Ê¤·¡¢¥¨¥é¡¼Ìµ»ë424 $arrInstallSql = split(";",$arrRet[0]['install_sql']);425 foreach($arrInstallSql as $key => $val){426 if (trim($val) != ""){427 $ret = $objQuery->query(trim($val),"",true);428 }429 }430 if(DB::isError($ret)) {431 // ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë432 ereg("\[(.*)\]", $ret->userinfo, $arrKey);433 $objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊѹ¹¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";434 $objPage->update_mess.= $arrKey[0] . "<br>";435 $flg_ok = false;436 } else {437 $objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤·¤¿¡£<br>";438 }439 }440 441 if($flg_ok) {442 $sqlval['now_version'] = $arrRet[0]['latest_version'];443 $sqlval['update_date'] = "now()";444 $objQuery->update("dtb_update", $sqlval, "module_id = ?", array($arrRet[0]['module_id']));445 }446 }447 448 // ¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë½èÍý449 function lfUninstallModule() {450 global $objPage;451 452 $objQuery = new SC_Query();453 $arrRet = $objQuery->select("module_id, extern_php, other_files, install_sql, uninstall_sql, latest_version", "dtb_update", "module_id = ?", array($_POST['module_id']));454 $flg_ok = true; // ½èÍý¤ÎÀ®¸ùȽÄê455 456 if(count($arrRet) > 0) {457 $arrFiles = array();458 if($arrRet[0]['other_files'] != "") {459 $arrFiles = split("\|", $arrRet[0]['other_files']);460 }461 $arrFiles[] = $arrRet[0]['extern_php'];462 foreach($arrFiles as $val) {463 $path = ROOT_DIR . $val;464 if(file_exists($path)) {465 // ¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë466 if(unlink($path)) {467 $objPage->update_mess.= ">> " . $path . "¡§ºï½üÀ®¸ù<br>";468 } else {469 $objPage->update_mess.= ">> " . $path . "¡§ºï½ü¼ºÇÔ<br>";470 }471 }472 }473 474 // ɬÍפÊSQLʸ¤Î¼Â¹Ô475 if($arrRet[0]['uninstall_sql'] != "") {476 // SQLʸ¼Â¹Ô¡¢¥Ñ¥é¡¼¥á¡¼¥¿¤Ê¤·¡¢¥¨¥é¡¼Ìµ»ë477 $ret = $objQuery->query($arrRet[0]['uninstall_sql'],"",true);478 if(DB::isError($ret)) {479 // ¥¨¥é¡¼Ê¸¤ò¼èÆÀ¤¹¤ë480 ereg("\[(.*)\]", $ret->userinfo, $arrKey);481 $objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊѹ¹¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br>";482 $objPage->update_mess.= $arrKey[0] . "<br>";483 $flg_ok = false;484 } else {485 $objPage->update_mess.=">> ¥Æ¡¼¥Ö¥ë¹½À®¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤·¤¿¡£<br>";486 }487 }488 } else {489 sfErrorHeader(">> Âоݤε¡Ç½¤Ï¡¢ÇÛÉÛ¤ò½ªÎ»¤·¤Æ¤ª¤ê¤Þ¤¹¡£");490 }491 492 if($flg_ok) {493 // ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òºï½ü¤¹¤ë¡£494 $sqlval['now_version'] = "";495 $sqlval['update_date'] = "now()";496 $objQuery->update("dtb_update", $sqlval, "module_id = ?", array($arrRet[0]['module_id']));497 }498 }499 500 501 275 ?>
Note: See TracChangeset
for help on using the changeset viewer.
