Changeset 16285
- Timestamp:
- 2007/10/05 23:20:09 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/html/install/index.php
r16257 r16285 12 12 13 13 class LC_Page { 14 15 16 17 18 19 20 21 22 23 14 function LC_Page() { 15 $this->arrDB_TYPE = array( 16 'pgsql' => 'PostgreSQL', 17 'mysql' => 'MySQL' 18 ); 19 $this->arrDB_PORT = array( 20 'pgsql' => '', 21 'mysql' => '' 22 ); 23 } 24 24 } 25 25 26 26 $objPage = new LC_Page(); 27 $objDb = new SC_Helper_DB_Ex(); 27 28 28 29 // テンプレートコンパイルディレクトリの書込み権限チェック … … 31 32 32 33 if(!is_writed($temp_dir)) { 33 34 34 SC_Utils_Ex::sfErrorHeader($temp_dir . "にユーザ書込み権限(777等)を付与して下さい。", true); 35 exit; 35 36 } 36 37 … … 51 52 // ようこそ 52 53 case 'welcome': 53 54 55 56 54 //$objPage = lfDispAgreement($objPage); 55 $objPage = lfDispStep0($objPage); 56 //$objPage->tpl_onload .= "fnChangeVisible('agreement_yes', 'next');"; 57 break; 57 58 58 59 /* 現在保留中 … … 60 61 // 使用許諾契約書の同意 61 62 case 'agreement': 62 63 63 $objPage = lfDispStep0($objPage); 64 break; 64 65 */ 65 66 66 67 // アクセス権限のチェック 67 68 case 'step0': 68 69 69 $objPage = lfDispStep0_1($objPage); 70 break; 70 71 // ファイルのコピー 71 72 case 'step0_1': 72 73 73 $objPage = lfDispStep1($objPage); 74 break; 74 75 // WEBサイトの設定 75 76 case 'step1': 76 77 78 79 80 81 82 83 77 //入力値のエラーチェック 78 $objPage->arrErr = lfCheckWEBError($objWebParam); 79 if(count($objPage->arrErr) == 0) { 80 $objPage = lfDispStep2($objPage); 81 } else { 82 $objPage = lfDispStep1($objPage); 83 } 84 break; 84 85 // データベースの設定 85 86 case 'step2': 86 87 88 89 90 91 92 93 87 //入力値のエラーチェック 88 $objPage->arrErr = lfCheckDBError($objDBParam); 89 if(count($objPage->arrErr) == 0) { 90 $objPage = lfDispStep3($objPage); 91 } else { 92 $objPage = lfDispStep2($objPage); 93 } 94 break; 94 95 // テーブルの作成 95 96 case 'step3': 96 97 98 99 100 101 102 103 104 105 $objPage->arrErr = lfAddTable("dtb_session", $dsn);// セッション管理テーブル106 $objPage->arrErr = lfAddTable("dtb_module", $dsn);// モジュール管理テーブル107 $objPage->arrErr = lfAddTable("dtb_campaign_order", $dsn);// キャンペーン受注テーブル108 $objPage->arrErr = lfAddTable("dtb_mobile_kara_mail", $dsn);// 空メール管理テーブル109 $objPage->arrErr = lfAddTable("dtb_mobile_ext_session_id", $dsn);// セッションID管理テーブル110 $objPage->arrErr = lfAddTable("dtb_site_control", $dsn);// サイト情報管理テーブル111 $objPage->arrErr = lfAddTable("dtb_trackback", $dsn);// トラックバック管理テーブル112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 97 // 入力データを渡す。 98 $arrRet = $objDBParam->getHashArray(); 99 $dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].":".$arrRet['db_port']."/".$arrRet['db_name']; 100 101 /* 102 lfAddTableは、バージョンアップ等で追加テーブルが発生した場合に実行する。 103 (DB構成の下位互換のためスキップ時も強制) 104 */ 105 // テーブルが存在しない場合に追加される。 106 $objPage->arrErr = lfAddTable("dtb_session", $dsn); // セッション管理テーブル 107 $objPage->arrErr = lfAddTable("dtb_module", $dsn); // モジュール管理テーブル 108 $objPage->arrErr = lfAddTable("dtb_campaign_order", $dsn); // キャンペーン受注テーブル 109 $objPage->arrErr = lfAddTable("dtb_mobile_kara_mail", $dsn); // 空メール管理テーブル 110 $objPage->arrErr = lfAddTable("dtb_mobile_ext_session_id", $dsn); // セッションID管理テーブル 111 $objPage->arrErr = lfAddTable("dtb_site_control", $dsn); // サイト情報管理テーブル 112 $objPage->arrErr = lfAddTable("dtb_trackback", $dsn); // トラックバック管理テーブル 113 114 115 // カラムを追加 116 lfAddColumn($dsn); 117 118 // データを追加 119 lfAddData($dsn); 120 121 if(count($objPage->arrErr) == 0) { 122 // スキップする場合には次画面へ遷移 123 $skip = $_POST["db_skip"]; 124 if ($skip == "on") { 125 // 設定ファイルの生成 126 lfMakeConfigFile(); 127 $objPage = lfDispComplete($objPage); 128 //$objPage = lfDispStep4($objPage); 129 break; 130 } 131 } 132 133 // テーブルの作成 134 $objPage->arrErr = lfExecuteSQL("./sql/create_table_".$arrRet['db_type'].".sql", $dsn); 135 if(count($objPage->arrErr) == 0) { 136 $objPage->tpl_message.="○:テーブルの作成に成功しました。<br>"; 137 } else { 138 $objPage->tpl_message.="×:テーブルの作成に失敗しました。<br>"; 139 } 140 141 // ビューの作成 142 if(count($objPage->arrErr) == 0 and $arrRet['db_type'] == 'pgsql') { 143 // ビューの作成 144 $objPage->arrErr = lfExecuteSQL("./sql/create_view.sql", $dsn); 145 if(count($objPage->arrErr) == 0) { 146 $objPage->tpl_message.="○:ビューの作成に成功しました。<br>"; 147 } else { 148 $objPage->tpl_message.="×:ビューの作成に失敗しました。<br>"; 149 } 150 } 151 152 // 初期データの作成 153 if(count($objPage->arrErr) == 0) { 154 $objPage->arrErr = lfExecuteSQL("./sql/insert_data.sql", $dsn); 155 156 if(count($objPage->arrErr) == 0) { 157 $objPage->tpl_message.="○:初期データの作成に成功しました。<br>"; 158 } else { 159 $objPage->tpl_message.="×:初期データの作成に失敗しました。<br>"; 160 } 161 } 162 163 // カラムコメントの書込み 164 if(count($objPage->arrErr) == 0) { 165 $objPage->arrErr = lfExecuteSQL("./sql/column_comment.sql", $dsn); 166 if(count($objPage->arrErr) == 0) { 167 $objPage->tpl_message.="○:カラムコメントの書込みに成功しました。<br>"; 168 } else { 169 $objPage->tpl_message.="×:カラムコメントの書込みに失敗しました。<br>"; 170 } 171 } 172 173 // テーブルコメントの書込み 174 if(count($objPage->arrErr) == 0) { 175 $objPage->arrErr = lfExecuteSQL("./sql/table_comment.sql", $dsn); 176 if(count($objPage->arrErr) == 0) { 177 $objPage->tpl_message.="○:テーブルコメントの書込みに成功しました。<br>"; 178 } else { 179 $objPage->tpl_message.="×:テーブルコメントの書込みに失敗しました。<br>"; 180 } 181 } 182 183 if(count($objPage->arrErr) == 0) { 184 // 設定ファイルの生成 185 lfMakeConfigFile(); 186 $objPage = lfDispStep3($objPage); 187 $objPage->tpl_mode = 'step4'; 188 } else { 189 $objPage = lfDispStep3($objPage); 190 } 191 break; 191 192 case 'step4': 192 193 193 $objPage = lfDispStep4($objPage); 194 break; 194 195 195 196 // テーブル類削除 196 197 case 'drop': 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 198 // 入力データを渡す。 199 $arrRet = $objDBParam->getHashArray(); 200 $dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].":".$arrRet['db_port']."/".$arrRet['db_name']; 201 202 // 追加テーブルがあれば削除する。 203 lfDropTable("dtb_module", $dsn); 204 lfDropTable("dtb_session", $dsn); 205 lfDropTable("dtb_campaign_order", $dsn); 206 lfDropTable("dtb_mobile_ext_session_id", $dsn); 207 lfDropTable("dtb_mobile_kara_mail", $dsn); 208 lfDropTable("dtb_site_control", $dsn); 209 lfDropTable("dtb_trackback", $dsn); 210 211 if ($arrRet['db_type'] == 'pgsql'){ 212 // ビューの削除 213 $objPage->arrErr = lfExecuteSQL("./sql/drop_view.sql", $dsn, false); 214 if(count($objPage->arrErr) == 0) { 215 $objPage->tpl_message.="○:ビューの削除に成功しました。<br>"; 216 } else { 217 $objPage->tpl_message.="×:ビューの削除に失敗しました。<br>"; 218 } 219 } 220 221 // テーブルの削除 222 if(count($objPage->arrErr) == 0) { 223 $objPage->arrErr = lfExecuteSQL("./sql/drop_table.sql", $dsn, false); 224 if(count($objPage->arrErr) == 0) { 225 $objPage->tpl_message.="○:テーブルの削除に成功しました。<br>"; 226 } else { 227 $objPage->tpl_message.="×:テーブルの削除に失敗しました。<br>"; 228 } 229 } 230 $objPage = lfDispStep3($objPage); 231 break; 231 232 // 完了画面 232 233 case 'complete': 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 234 // ショップマスタ情報の書き込み 235 $arrRet = $objDBParam->getHashArray(); 236 237 $dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].":".$arrRet['db_port']."/".$arrRet['db_name']; 238 $sqlval['shop_name'] = $objWebParam->getValue('shop_name'); 239 $sqlval['email01'] = $objWebParam->getValue('admin_mail'); 240 $sqlval['email02'] = $objWebParam->getValue('admin_mail'); 241 $sqlval['email03'] = $objWebParam->getValue('admin_mail'); 242 $sqlval['email04'] = $objWebParam->getValue('admin_mail'); 243 $sqlval['email05'] = $objWebParam->getValue('admin_mail'); 244 $sqlval['top_tpl'] = "default1"; 245 $sqlval['product_tpl'] = "default1"; 246 $sqlval['detail_tpl'] = "default1"; 247 $sqlval['mypage_tpl'] = "default1"; 248 $objQuery = new SC_Query($dsn); 249 $cnt = $objQuery->count("dtb_baseinfo"); 250 if($cnt > 0) { 251 $objQuery->update("dtb_baseinfo", $sqlval); 252 } else { 253 $objQuery->insert("dtb_baseinfo", $sqlval); 254 } 255 256 // 管理者登録 257 $login_id = $objWebParam->getValue('login_id'); 258 $login_pass = sha1($objWebParam->getValue('login_pass') . ":" . AUTH_MAGIC); 259 260 $sql = "DELETE FROM dtb_member WHERE login_id = ?"; 261 $objQuery->query($sql, array($login_id)); 262 263 $sql = "INSERT INTO dtb_member (name, login_id, password, creator_id, authority, work, del_flg, rank, create_date, update_date) 264 VALUES ('管理者',?,?,0,0,1,0,1, now(), now());"; 265 266 $objQuery->query($sql, array($login_id, $login_pass)); 267 268 global $GLOBAL_ERR; 269 $GLOBAL_ERR = ""; 270 $objPage = lfDispComplete($objPage); 271 272 // サイト情報を送信 273 $req = new HTTP_Request("http://www.ec-cube.net/mall/use_site.php"); 274 $req->setMethod(HTTP_REQUEST_METHOD_POST); 275 276 $arrSendData = array(); 277 foreach($_POST as $key => $val){ 278 if (ereg("^senddata_*", $key)){ 279 $arrSendDataTmp = array(str_replace("senddata_", "", $key) => $val); 280 $arrSendData = array_merge($arrSendData, $arrSendDataTmp); 281 } 282 } 283 284 $req->addPostDataArray($arrSendData); 285 286 if (!PEAR::isError($req->sendRequest())) { 287 $response1 = $req->getResponseBody(); 288 } else { 289 $response1 = ""; 290 } 291 $req->clearPostData(); 292 293 break; 293 294 case 'return_step0': 294 295 295 $objPage = lfDispStep0($objPage); 296 break; 296 297 case 'return_step1': 297 298 298 $objPage = lfDispStep1($objPage); 299 break; 299 300 case 'return_step2': 300 301 301 $objPage = lfDispStep2($objPage); 302 break; 302 303 case 'return_step3': 303 304 304 $objPage = lfDispStep3($objPage); 305 break; 305 306 case 'return_agreement': 306 307 308 307 $objPage = lfDispAgreement($objPage); 308 $objPage->tpl_onload .= "fnChangeVisible('agreement_yes', 'next');"; 309 break; 309 310 case 'return_welcome': 310 311 default: 311 312 312 $objPage = lfDispWelcome($objPage); 313 break; 313 314 } 314 315 … … 323 324 // ようこそ画面の表示 324 325 function lfDispWelcome($objPage) { 325 326 327 328 329 330 331 332 333 334 335 326 global $objWebParam; 327 global $objDBParam; 328 // hiddenに入力値を保持 329 $objPage->arrHidden = $objWebParam->getHashArray(); 330 // hiddenに入力値を保持 331 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 332 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 333 $objPage->arrHidden['agreement'] = $_POST['agreement']; 334 $objPage->tpl_mainpage = 'welcome.tpl'; 335 $objPage->tpl_mode = 'welcome'; 336 return $objPage; 336 337 } 337 338 338 339 // 使用許諾契約書の表示 339 340 function lfDispAgreement($objPage) { 340 341 342 343 344 345 346 347 348 349 350 341 global $objWebParam; 342 global $objDBParam; 343 // hiddenに入力値を保持 344 $objPage->arrHidden = $objWebParam->getHashArray(); 345 // hiddenに入力値を保持 346 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 347 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 348 $objPage->arrHidden['agreement'] = $_POST['agreement']; 349 $objPage->tpl_mainpage = 'agreement.tpl'; 350 $objPage->tpl_mode = 'agreement'; 351 return $objPage; 351 352 } 352 353 353 354 // STEP0画面の表示(ファイル権限チェック) 354 355 function lfDispStep0($objPage) { 355 global $objWebParam; 356 global $objDBParam; 357 // hiddenに入力値を保持 358 $objPage->arrHidden = $objWebParam->getHashArray(); 359 // hiddenに入力値を保持 360 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 361 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 362 $objPage->arrHidden['agreement'] = $_POST['agreement']; 363 $objPage->tpl_mainpage = 'step0.tpl'; 364 $objPage->tpl_mode = 'step0'; 365 366 // プログラムで書込みされるファイル・ディレクトリ 367 $arrWriteFile = array( 368 ".." . HTML2DATA_DIR . "install.php", 369 "../user_data", 370 "../cp", 371 "../upload", 372 ".." . HTML2DATA_DIR . "Smarty/templates_c", 373 ".." . HTML2DATA_DIR . "downloads", 374 ".." . HTML2DATA_DIR . "logs" 375 ); 376 377 $mess = ""; 378 $err_file = false; 379 foreach($arrWriteFile as $val) { 380 if(file_exists($val)) { 381 $mode = lfGetFileMode($val); 382 $real_path = realpath($val); 383 384 // ディレクトリの場合 385 if(is_dir($val)) { 386 if(!is_writable($val)) { 387 $mess.= ">> ○:$real_path($mode) <br>アクセス権限は正常です。<br>"; 388 } else { 389 $mess.= ">> ×:$real_path($mode) <br>ユーザ書込み権限(777等)を付与して下さい。<br>"; 390 $err_file = true; 391 } 392 } else { 393 if(!is_writable($val)) { 394 $mess.= ">> ○:$real_path($mode) <br>アクセス権限は正常です。<br>"; 395 } else { 396 $mess.= ">> ×:$real_path($mode) <br>ユーザ書込み権限(666等)を付与して下さい。<br>"; 397 $err_file = true; 398 } 399 } 400 } else { 401 $mess.= ">> ×:$val が見つかりません。<br>"; 402 $err_file = true; 403 } 404 } 405 406 // 権限エラー等が発生していない場合 407 if(!$err_file) { 408 $path = ".." . HTML2DATA_DIR . "Smarty/templates_c/admin"; 409 if(!file_exists($path)) { 410 mkdir($path); 411 } 412 $path = ".." . HTML2DATA_DIR . "Smarty/templates_c/mobile"; 413 if(!file_exists($path)) { 414 mkdir($path); 415 } 416 $path = "../upload/temp_template"; 417 if(!file_exists($path)) { 418 mkdir($path); 419 } 420 $path = "../upload/save_image"; 421 if(!file_exists($path)) { 422 mkdir($path); 423 } 424 $path = "../upload/temp_image"; 425 if(!file_exists($path)) { 426 mkdir($path); 427 } 428 $path = "../upload/graph_image"; 429 if(!file_exists($path)) { 430 mkdir($path); 431 } 432 $path = "../upload/mobile_image"; 433 if(!file_exists($path)) { 434 mkdir($path); 435 } 436 $path = "../upload/csv"; 437 if(!file_exists($path)) { 438 mkdir($path); 439 } 440 $path = ".." . HTML2DATA_DIR . "downloads/module"; 441 if(!file_exists($path)) { 442 mkdir($path); 443 } 444 $path = ".." . HTML2DATA_DIR . "downloads/update"; 445 if(!file_exists($path)) { 446 mkdir($path); 447 } 448 } 449 450 $objPage->mess = $mess; 451 $objPage->err_file = $err_file; 452 453 return $objPage; 356 global $objWebParam; 357 global $objDBParam; 358 // hiddenに入力値を保持 359 $objPage->arrHidden = $objWebParam->getHashArray(); 360 // hiddenに入力値を保持 361 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 362 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 363 $objPage->arrHidden['agreement'] = $_POST['agreement']; 364 $objPage->tpl_mainpage = 'step0.tpl'; 365 $objPage->tpl_mode = 'step0'; 366 367 // プログラムで書込みされるファイル・ディレクトリ 368 $arrWriteFile = array( 369 ".." . HTML2DATA_DIR . "install.php", 370 "../user_data", 371 "../cp", 372 "../upload", 373 ".." . HTML2DATA_DIR . "Smarty/templates_c", 374 ".." . HTML2DATA_DIR . "conf/cache", 375 ".." . HTML2DATA_DIR . "downloads", 376 ".." . HTML2DATA_DIR . "logs" 377 ); 378 379 $mess = ""; 380 $err_file = false; 381 foreach($arrWriteFile as $val) { 382 if(file_exists($val)) { 383 $mode = lfGetFileMode($val); 384 $real_path = realpath($val); 385 386 // ディレクトリの場合 387 if(is_dir($val)) { 388 if(!is_writable($val)) { 389 $mess.= ">> ○:$real_path($mode) <br>アクセス権限は正常です。<br>"; 390 } else { 391 $mess.= ">> ×:$real_path($mode) <br>ユーザ書込み権限(777等)を付与して下さい。<br>"; 392 $err_file = true; 393 } 394 } else { 395 if(!is_writable($val)) { 396 $mess.= ">> ○:$real_path($mode) <br>アクセス権限は正常です。<br>"; 397 } else { 398 $mess.= ">> ×:$real_path($mode) <br>ユーザ書込み権限(666等)を付与して下さい。<br>"; 399 $err_file = true; 400 } 401 } 402 } else { 403 $mess.= ">> ×:$val が見つかりません。<br>"; 404 $err_file = true; 405 } 406 } 407 408 // 権限エラー等が発生していない場合 409 if(!$err_file) { 410 $path = ".." . HTML2DATA_DIR . "Smarty/templates_c/admin"; 411 if(!file_exists($path)) { 412 mkdir($path); 413 } 414 $path = ".." . HTML2DATA_DIR . "Smarty/templates_c/mobile"; 415 if(!file_exists($path)) { 416 mkdir($path); 417 } 418 $path = "../upload/temp_template"; 419 if(!file_exists($path)) { 420 mkdir($path); 421 } 422 $path = "../upload/save_image"; 423 if(!file_exists($path)) { 424 mkdir($path); 425 } 426 $path = "../upload/temp_image"; 427 if(!file_exists($path)) { 428 mkdir($path); 429 } 430 $path = "../upload/graph_image"; 431 if(!file_exists($path)) { 432 mkdir($path); 433 } 434 $path = "../upload/mobile_image"; 435 if(!file_exists($path)) { 436 mkdir($path); 437 } 438 $path = "../upload/csv"; 439 if(!file_exists($path)) { 440 mkdir($path); 441 } 442 $path = ".." . HTML2DATA_DIR . "downloads/module"; 443 if(!file_exists($path)) { 444 mkdir($path); 445 } 446 $path = ".." . HTML2DATA_DIR . "downloads/update"; 447 if(!file_exists($path)) { 448 mkdir($path); 449 } 450 } 451 452 $objPage->mess = $mess; 453 $objPage->err_file = $err_file; 454 455 return $objPage; 454 456 } 455 457 456 458 // STEP0_1画面の表示(ファイルのコピー) 457 459 function lfDispStep0_1($objPage) { 458 global $objWebParam; 459 global $objDBParam; 460 // hiddenに入力値を保持 461 $objPage->arrHidden = $objWebParam->getHashArray(); 462 // hiddenに入力値を保持 463 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 464 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 465 $objPage->arrHidden['agreement'] = $_POST['agreement']; 466 $objPage->tpl_mainpage = 'step0_1.tpl'; 467 $objPage->tpl_mode = 'step0_1'; 468 // ファイルコピー 469 $objPage->copy_mess = sfCopyDir("./user_data/", "../user_data/", $objPage->copy_mess); 470 $objPage->copy_mess = sfCopyDir("./save_image/", "../upload/save_image/", $objPage->copy_mess); 471 return $objPage; 460 global $objWebParam; 461 global $objDBParam; 462 463 // hiddenに入力値を保持 464 $objPage->arrHidden = $objWebParam->getHashArray(); 465 // hiddenに入力値を保持 466 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 467 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 468 $objPage->arrHidden['agreement'] = $_POST['agreement']; 469 $objPage->tpl_mainpage = 'step0_1.tpl'; 470 $objPage->tpl_mode = 'step0_1'; 471 // ファイルコピー 472 $objPage->copy_mess = SC_Utils_Ex::sfCopyDir("./user_data/", "../user_data/", $objPage->copy_mess); 473 $objPage->copy_mess = SC_Utils_Ex::sfCopyDir("./save_image/", "../upload/save_image/", $objPage->copy_mess); 474 return $objPage; 472 475 } 473 476 474 477 // STEP0_2画面の表示(ファイルのコピー) 475 478 function lfDispStep0_2($objPage) { 476 477 478 479 480 481 482 483 484 485 486 487 $objPage->copy_mess =sfCopyDir("./user_data/", "../user_data/", $objPage->copy_mess);488 $objPage->copy_mess =sfCopyDir("./save_image/", "../upload/save_image/", $objPage->copy_mess);489 479 global $objWebParam; 480 global $objDBParam; 481 // hiddenに入力値を保持 482 $objPage->arrHidden = $objWebParam->getHashArray(); 483 // hiddenに入力値を保持 484 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 485 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 486 $objPage->arrHidden['agreement'] = $_POST['agreement']; 487 $objPage->tpl_mainpage = 'step0_1.tpl'; 488 $objPage->tpl_mode = 'step0_1'; 489 // ファイルコピー 490 $objPage->copy_mess = SC_Utils_Ex::sfCopyDir("./user_data/", "../user_data/", $objPage->copy_mess); 491 $objPage->copy_mess = SC_Utils_Ex::sfCopyDir("./save_image/", "../upload/save_image/", $objPage->copy_mess); 492 return $objPage; 490 493 } 491 494 492 495 function lfGetFileMode($path) { 493 494 496 $mode = substr(sprintf('%o', fileperms($path)), -3); 497 return $mode; 495 498 } 496 499 497 500 // STEP1画面の表示 498 501 function lfDispStep1($objPage) { 499 500 501 502 503 504 505 506 502 global $objDBParam; 503 // hiddenに入力値を保持 504 $objPage->arrHidden = $objDBParam->getHashArray(); 505 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 506 $objPage->arrHidden['agreement'] = $_POST['agreement']; 507 $objPage->tpl_mainpage = 'step1.tpl'; 508 $objPage->tpl_mode = 'step1'; 509 return $objPage; 507 510 } 508 511 509 512 // STEP2画面の表示 510 513 function lfDispStep2($objPage) { 511 512 513 514 515 516 517 518 519 514 global $objWebParam; 515 global $objDBParam; 516 // hiddenに入力値を保持 517 $objPage->arrHidden = $objWebParam->getHashArray(); 518 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 519 $objPage->arrHidden['agreement'] = $_POST['agreement']; 520 $objPage->tpl_mainpage = 'step2.tpl'; 521 $objPage->tpl_mode = 'step2'; 522 return $objPage; 520 523 } 521 524 522 525 // STEP3画面の表示 523 526 function lfDispStep3($objPage) { 524 525 526 527 528 529 530 531 532 533 534 527 global $objWebParam; 528 global $objDBParam; 529 // hiddenに入力値を保持 530 $objPage->arrHidden = $objWebParam->getHashArray(); 531 // hiddenに入力値を保持 532 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 533 $objPage->arrHidden['agreement'] = $_POST['agreement']; 534 $objPage->tpl_db_skip = $_POST['db_skip']; 535 $objPage->tpl_mainpage = 'step3.tpl'; 536 $objPage->tpl_mode = 'step3'; 537 return $objPage; 535 538 } 536 539 537 540 // STEP4画面の表示 538 541 function lfDispStep4($objPage) { 539 global $objWebParam; 540 global $objDBParam; 541 // hiddenに入力値を保持 542 $objPage->arrHidden = $objWebParam->getHashArray(); 543 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 544 // hiddenに入力値を保持 545 $objPage->arrHidden['agreement'] = $_POST['agreement']; 546 547 $normal_url = $objWebParam->getValue('normal_url'); 548 // 語尾に'/'をつける 549 if (!ereg("/$", $normal_url)) $normal_url = $normal_url . "/"; 550 551 $arrDbParam = $objDBParam->getHashArray(); 552 $dsn = $arrDbParam['db_type']."://".$arrDbParam['db_user'].":".$arrDbParam['db_password']."@".$arrDbParam['db_server'].":".$arrDbParam['db_port']."/".$arrDbParam['db_name']; 553 554 $objPage->tpl_site_url = $normal_url; 555 $objPage->tpl_shop_name = $objWebParam->getValue('shop_name'); 556 $objPage->tpl_cube_ver = ECCUBE_VERSION; 557 $objPage->tpl_php_ver = phpversion(); 558 $objPage->tpl_db_ver = sfGetDBVersion($dsn); 559 $objPage->tpl_db_skip = $_POST['db_skip']; 560 $objPage->tpl_mainpage = 'step4.tpl'; 561 $objPage->tpl_mode = 'complete'; 562 return $objPage; 542 global $objWebParam; 543 global $objDBParam; 544 global $objDb; 545 546 // hiddenに入力値を保持 547 $objPage->arrHidden = $objWebParam->getHashArray(); 548 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 549 // hiddenに入力値を保持 550 $objPage->arrHidden['agreement'] = $_POST['agreement']; 551 552 $normal_url = $objWebParam->getValue('normal_url'); 553 // 語尾に'/'をつける 554 if (!ereg("/$", $normal_url)) $normal_url = $normal_url . "/"; 555 556 $arrDbParam = $objDBParam->getHashArray(); 557 $dsn = $arrDbParam['db_type']."://".$arrDbParam['db_user'].":".$arrDbParam['db_password']."@".$arrDbParam['db_server'].":".$arrDbParam['db_port']."/".$arrDbParam['db_name']; 558 559 $objPage->tpl_site_url = $normal_url; 560 $objPage->tpl_shop_name = $objWebParam->getValue('shop_name'); 561 $objPage->tpl_cube_ver = ECCUBE_VERSION; 562 $objPage->tpl_php_ver = phpversion(); 563 $objPage->tpl_db_ver = $objDb->sfGetDBVersion($dsn); 564 $objPage->tpl_db_skip = $_POST['db_skip']; 565 $objPage->tpl_mainpage = 'step4.tpl'; 566 $objPage->tpl_mode = 'complete'; 567 return $objPage; 563 568 } 564 569 565 570 // 完了画面の表示 566 571 function lfDispComplete($objPage) { 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 572 global $objWebParam; 573 global $objDBParam; 574 // hiddenに入力値を保持 575 $objPage->arrHidden = $objWebParam->getHashArray(); 576 // hiddenに入力値を保持 577 $objPage->arrHidden = array_merge($objPage->arrHidden, $objDBParam->getHashArray()); 578 $objPage->arrHidden['db_skip'] = $_POST['db_skip']; 579 $objPage->tpl_mainpage = 'complete.tpl'; 580 $objPage->tpl_mode = 'complete'; 581 582 $secure_url = $objWebParam->getValue('secure_url'); 583 // 語尾に'/'をつける 584 if (!ereg("/$", $secure_url)) { 585 $secure_url = $secure_url . "/"; 586 } 587 $objPage->tpl_sslurl = $secure_url; 588 return $objPage; 584 589 } 585 590 586 591 // WEBパラメータ情報の初期化 587 592 function lfInitWebParam($objWebParam) { 588 589 if(defined('HTML_PATH')) { 590 $install_dir = HTML_PATH; 591 } else { 592 $install_dir = realpath(dirname( __FILE__) . "/../") . "/"; 593 } 594 595 if(defined('SITE_URL')) { 596 $normal_url = SITE_URL; 597 } else { 598 $dir = ereg_replace("install/.*$", "", $_SERVER['REQUEST_URI']); 599 $normal_url = "http://" . $_SERVER['HTTP_HOST'] . $dir; 600 } 601 602 if(defined('SSL_URL')) { 603 $secure_url = SSL_URL; 604 } else { 605 $dir = ereg_replace("install/.*$", "", $_SERVER['REQUEST_URI']); 606 $secure_url = "http://" . $_SERVER['HTTP_HOST'] . $dir; 607 } 608 609 // 店名、管理者メールアドレスを取得する。(再インストール時) 610 if(defined('DEFAULT_DSN')) { 611 $ret = sfTabaleExists("dtb_baseinfo", DEFAULT_DSN); 612 if($ret) { 613 $objQuery = new SC_Query(); 614 $arrRet = $objQuery->select("shop_name, email01", "dtb_baseinfo"); 615 $shop_name = $arrRet[0]['shop_name']; 616 $admin_mail = $arrRet[0]['email01']; 617 } 618 } 619 620 $objWebParam->addParam("店名", "shop_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $shop_name); 621 $objWebParam->addParam("管理者:メールアドレス", "admin_mail", MTEXT_LEN, "", array("EXIST_CHECK","EMAIL_CHECK","EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK"), $admin_mail); 622 $objWebParam->addParam("管理者:ログインID", "login_id", MTEXT_LEN, "", array("EXIST_CHECK","EXIST_CHECK", "ALNUM_CHECK")); 623 $objWebParam->addParam("管理者:パスワード", "login_pass", MTEXT_LEN, "", array("EXIST_CHECK","EXIST_CHECK", "ALNUM_CHECK")); 624 $objWebParam->addParam("インストールディレクトリ", "install_dir", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $install_dir); 625 $objWebParam->addParam("URL(通常)", "normal_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $normal_url); 626 $objWebParam->addParam("URL(セキュア)", "secure_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $secure_url); 627 $objWebParam->addParam("ドメイン", "domain", MTEXT_LEN, "", array("MAX_LENGTH_CHECK")); 628 629 return $objWebParam; 593 global $objDb; 594 595 if(defined('HTML_PATH')) { 596 $install_dir = HTML_PATH; 597 } else { 598 $install_dir = realpath(dirname( __FILE__) . "/../") . "/"; 599 } 600 601 if(defined('SITE_URL')) { 602 $normal_url = SITE_URL; 603 } else { 604 $dir = ereg_replace("install/.*$", "", $_SERVER['REQUEST_URI']); 605 $normal_url = "http://" . $_SERVER['HTTP_HOST'] . $dir; 606 } 607 608 if(defined('SSL_URL')) { 609 $secure_url = SSL_URL; 610 } else { 611 $dir = ereg_replace("install/.*$", "", $_SERVER['REQUEST_URI']); 612 $secure_url = "http://" . $_SERVER['HTTP_HOST'] . $dir; 613 } 614 615 // 店名、管理者メールアドレスを取得する。(再インストール時) 616 if(defined('DEFAULT_DSN')) { 617 $ret = $objDb->sfTabaleExists("dtb_baseinfo", DEFAULT_DSN); 618 if($ret) { 619 $objQuery = new SC_Query(); 620 $arrRet = $objQuery->select("shop_name, email01", "dtb_baseinfo"); 621 $shop_name = $arrRet[0]['shop_name']; 622 $admin_mail = $arrRet[0]['email01']; 623 } 624 } 625 626 $objWebParam->addParam("店名", "shop_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $shop_name); 627 $objWebParam->addParam("管理者:メールアドレス", "admin_mail", MTEXT_LEN, "", array("EXIST_CHECK","EMAIL_CHECK","EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK"), $admin_mail); 628 $objWebParam->addParam("管理者:ログインID", "login_id", MTEXT_LEN, "", array("EXIST_CHECK","EXIST_CHECK", "ALNUM_CHECK")); 629 $objWebParam->addParam("管理者:パスワード", "login_pass", MTEXT_LEN, "", array("EXIST_CHECK","EXIST_CHECK", "ALNUM_CHECK")); 630 $objWebParam->addParam("インストールディレクトリ", "install_dir", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $install_dir); 631 $objWebParam->addParam("URL(通常)", "normal_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $normal_url); 632 $objWebParam->addParam("URL(セキュア)", "secure_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $secure_url); 633 $objWebParam->addParam("ドメイン", "domain", MTEXT_LEN, "", array("MAX_LENGTH_CHECK")); 634 635 return $objWebParam; 630 636 } 631 637 … … 633 639 function lfInitDBParam($objDBParam) { 634 640 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 641 if(defined('DB_SERVER')) { 642 $db_server = DB_SERVER; 643 } else { 644 $db_server = "127.0.0.1"; 645 } 646 647 if(defined('DB_TYPE')) { 648 $db_type = DB_TYPE; 649 } else { 650 $db_type = ""; 651 } 652 653 if(defined('DB_PORT')) { 654 $db_port = DB_PORT; 655 } else { 656 $db_port = ""; 657 } 658 659 if(defined('DB_NAME')) { 660 $db_name = DB_NAME; 661 } else { 662 $db_name = "eccube_db"; 663 } 664 665 if(defined('DB_USER')) { 666 $db_user = DB_USER; 667 } else { 668 $db_user = "eccube_db_user"; 669 } 670 671 $objDBParam->addParam("DBの種類", "db_type", INT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_type); 672 $objDBParam->addParam("DBサーバ", "db_server", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_server); 673 $objDBParam->addParam("DBポート", "db_port", INT_LEN, "", array("MAX_LENGTH_CHECK"), $db_port); 674 $objDBParam->addParam("DB名", "db_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_name); 675 $objDBParam->addParam("DBユーザ", "db_user", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $db_user); 676 $objDBParam->addParam("DBパスワード", "db_password", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK")); 677 678 return $objDBParam; 673 679 } 674 680 675 681 // 入力内容のチェック 676 682 function lfCheckWebError($objFormParam) { 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 683 // 入力データを渡す。 684 $arrRet = $objFormParam->getHashArray(); 685 $objErr = new SC_CheckError($arrRet); 686 $objErr->arrErr = $objFormParam->checkError(); 687 688 // ディレクトリ名のみ取得する 689 $normal_dir = ereg_replace("^https?://[a-zA-Z0-9_~=&\?\.\-]+", "", $arrRet['normal_url']); 690 $secure_dir = ereg_replace("^https?://[a-zA-Z0-9_~=&\?\.\-]+", "", $arrRet['secure_url']); 691 692 if($normal_dir != $secure_dir) { 693 $objErr->arrErr['normal_url'] = "URLに異なる階層を指定することはできません。"; 694 $objErr->arrErr['secure_url'] = "URLに異なる階層を指定することはできません。"; 695 } 696 697 // ログインIDチェック 698 $objErr->doFunc(array("管理者:ログインID",'login_id',ID_MIN_LEN , ID_MAX_LEN) ,array("NUM_RANGE_CHECK")); 699 700 // パスワードのチェック 701 $objErr->doFunc( array("管理者:パスワード",'login_pass',4 ,15 ) ,array( "NUM_RANGE_CHECK" ) ); 702 703 return $objErr->arrErr; 698 704 } 699 705 700 706 // 入力内容のチェック 701 707 function lfCheckDBError($objFormParam) { 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 $objPage->tpl_db_version =sfGetDBVersion($dsn);720 721 722 723 724 725 726 727 728 708 global $objPage; 709 710 // 入力データを渡す。 711 $arrRet = $objFormParam->getHashArray(); 712 713 $objErr = new SC_CheckError($arrRet); 714 $objErr->arrErr = $objFormParam->checkError(); 715 716 if(count($objErr->arrErr) == 0) { 717 // 接続確認 718 $dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].":".$arrRet['db_port']."/".$arrRet['db_name']; 719 // Debugモード指定 720 $options['debug'] = PEAR_DB_DEBUG; 721 $objDB = DB::connect($dsn, $options); 722 // 接続成功 723 if(!PEAR::isError($objDB)) { 724 // データベースバージョン情報の取得 725 $objPage->tpl_db_version = $objDb->sfGetDBVersion($dsn); 726 } else { 727 $objErr->arrErr['all'] = ">> " . $objDB->message . "<br>"; 728 // エラー文を取得する 729 ereg("\[(.*)\]", $objDB->userinfo, $arrKey); 730 $objErr->arrErr['all'].= $arrKey[0] . "<br>"; 731 gfPrintLog($objDB->userinfo, INSTALL_LOG); 732 } 733 } 734 return $objErr->arrErr; 729 735 } 730 736 731 737 // SQL文の実行 732 738 function lfExecuteSQL($filepath, $dsn, $disp_err = true) { 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 739 $arrErr = array(); 740 741 if(!file_exists($filepath)) { 742 $arrErr['all'] = ">> スクリプトファイルが見つかりません"; 743 } else { 744 if($fp = fopen($filepath,"r")) { 745 $sql = fread($fp, filesize($filepath)); 746 fclose($fp); 747 } 748 // Debugモード指定 749 $options['debug'] = PEAR_DB_DEBUG; 750 $objDB = DB::connect($dsn, $options); 751 // 接続エラー 752 if(!PEAR::isError($objDB)) { 753 // 改行、タブを1スペースに変換 754 $sql = preg_replace("/[\r\n\t]/"," ",$sql); 755 $sql_split = split(";",$sql); 756 foreach($sql_split as $key => $val){ 757 if (trim($val) != "") { 758 $ret = $objDB->query($val); 759 if(PEAR::isError($ret) && $disp_err) { 760 $arrErr['all'] = ">> " . $ret->message . "<br>"; 761 // エラー文を取得する 762 ereg("\[(.*)\]", $ret->userinfo, $arrKey); 763 $arrErr['all'].= $arrKey[0] . "<br>"; 764 $objPage->update_mess.=">> テーブル構成の変更に失敗しました。<br>"; 765 gfPrintLog($ret->userinfo, INSTALL_LOG); 766 } 767 } 768 } 769 } else { 770 $arrErr['all'] = ">> " . $objDB->message; 771 gfPrintLog($objDB->userinfo, INSTALL_LOG); 772 } 773 } 774 return $arrErr; 769 775 } 770 776 771 777 // 設定ファイルの作成 772 778 function lfMakeConfigFile() { 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 $data_path =sfRmDupSlash($root_dir . HTML2DATA_DIR);798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 779 global $objWebParam; 780 global $objDBParam; 781 782 $root_dir = $objWebParam->getValue('install_dir'); 783 // 語尾に'/'をつける 784 if (!ereg("/$", $root_dir)) { 785 $root_dir = $root_dir . "/"; 786 } 787 788 $normal_url = $objWebParam->getValue('normal_url'); 789 // 語尾に'/'をつける 790 if (!ereg("/$", $normal_url)) { 791 $normal_url = $normal_url . "/"; 792 } 793 794 $secure_url = $objWebParam->getValue('secure_url'); 795 // 語尾に'/'をつける 796 if (!ereg("/$", $secure_url)) { 797 $secure_url = $secure_url . "/"; 798 } 799 800 // ディレクトリの取得 801 $url_dir = ereg_replace("^https?://[a-zA-Z0-9_~=&\?\.\-]+", "", $normal_url); 802 803 $data_path = SC_Utils_Ex::sfRmDupSlash($root_dir . HTML2DATA_DIR); 804 $data_path = realpath($data_path); 805 // 語尾に'/'をつける 806 if (!ereg("/$", $data_path)) { 807 $data_path = $data_path . "/"; 808 } 809 $filepath = $data_path . "install.php"; 810 811 $config_data = 812 "<?php\n". 813 " define ('ECCUBE_INSTALL', 'ON');\n" . 814 " define ('HTML_PATH', '" . $root_dir . "');\n" . 815 " define ('SITE_URL', '" . $normal_url . "');\n" . 816 " define ('SSL_URL', '" . $secure_url . "');\n" . 817 " define ('URL_DIR', '" . $url_dir . "');\n" . 818 " define ('DOMAIN_NAME', '" . $objWebParam->getValue('domain') . "');\n" . 819 " define ('DB_TYPE', '" . $objDBParam->getValue('db_type') . "');\n" . 820 " define ('DB_USER', '" . $objDBParam->getValue('db_user') . "');\n" . 821 " define ('DB_PASSWORD', '" . $objDBParam->getValue('db_password') . "');\n" . 822 " define ('DB_SERVER', '" . $objDBParam->getValue('db_server') . "');\n" . 823 " define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" . 824 " define ('DB_PORT', '" . $objDBParam->getValue('db_port') . "');\n" . 825 " define ('DATA_PATH', '".$data_path."');\n" . 826 " define ('MOBILE_HTML_PATH', HTML_PATH . 'mobile/');\n" . 827 " define ('MOBILE_SITE_URL', SITE_URL . 'mobile/');\n" . 828 " define ('MOBILE_SSL_URL', SSL_URL . 'mobile/');\n" . 829 " define ('MOBILE_URL_DIR', URL_DIR . 'mobile/');\n" . 830 "?>"; 831 832 if($fp = fopen($filepath,"w")) { 833 fwrite($fp, $config_data); 834 fclose($fp); 835 } 830 836 /* install_mobile.incは使用しない用に変更 831 837 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 838 // モバイル版の設定ファイル install_mobile.inc を作成する。 839 $filepath = $data_path . "install_mobile.inc"; 840 841 $config_data = 842 "<?php\n". 843 " define ('ECCUBE_INSTALL', 'ON');\n" . 844 " define ('HTML_PATH', '" . $root_dir . "mobile/');\n" . 845 " define ('PC_HTML_PATH', '" . $root_dir . "');\n" . 846 " define ('SITE_URL', '" . $normal_url . "mobile/');\n" . 847 " define ('PC_SITE_URL', '" . $normal_url . "');\n" . 848 " define ('SSL_URL', '" . $secure_url . "mobile/');\n" . 849 " define ('PC_SSL_URL', '" . $secure_url . "');\n" . 850 " define ('URL_DIR', '" . $url_dir . "mobile/');\n" . 851 " define ('PC_URL_DIR', '" . $url_dir . "');\n" . 852 " define ('DOMAIN_NAME', '" . $objWebParam->getValue('domain') . "');\n" . 853 " define ('DB_TYPE', '" . $objDBParam->getValue('db_type') . "');\n" . 854 " define ('DB_USER', '" . $objDBParam->getValue('db_user') . "');\n" . 855 " define ('DB_PASSWORD', '" . $objDBParam->getValue('db_password') . "');\n" . 856 " define ('DB_SERVER', '" . $objDBParam->getValue('db_server') . "');\n" . 857 " define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" . 858 " define ('DB_PORT', '" . $objDBParam->getValue('db_port') . "');\n" . 859 " define ('DATA_PATH', '".$data_path."');\n" . 860 "?>"; 861 862 if($fp = fopen($filepath,"w")) { 863 fwrite($fp, $config_data); 864 fclose($fp); 865 } 860 866 */ 861 867 } … … 863 869 // テーブルの追加(既にテーブルが存在する場合は作成しない) 864 870 function lfAddTable($table_name, $dsn) { 865 global $objPage; 866 $arrErr = array(); 867 if(!sfTabaleExists($table_name, $dsn)) { 868 list($db_type) = split(":", $dsn); 869 $sql_path = "./sql/add/". $table_name . "_" .$db_type .".sql"; 870 $arrErr = lfExecuteSQL($sql_path, $dsn); 871 if(count($arrErr) == 0) { 872 $objPage->tpl_message.="○:追加テーブル($table_name)の作成に成功しました。<br>"; 873 } else { 874 $objPage->tpl_message.="×:追加テーブル($table_name)の作成に失敗しました。<br>"; 875 } 876 } else { 877 $objPage->tpl_message.="○:追加テーブル($table_name)が確認されました。<br>"; 878 } 879 880 return $arrErr; 871 global $objPage; 872 global $objDb; 873 $arrErr = array(); 874 if(!$objDb->sfTabaleExists($table_name, $dsn)) { 875 list($db_type) = split(":", $dsn); 876 $sql_path = "./sql/add/". $table_name . "_" .$db_type .".sql"; 877 $arrErr = lfExecuteSQL($sql_path, $dsn); 878 if(count($arrErr) == 0) { 879 $objPage->tpl_message.="○:追加テーブル($table_name)の作成に成功しました。<br>"; 880 } else { 881 $objPage->tpl_message.="×:追加テーブル($table_name)の作成に失敗しました。<br>"; 882 } 883 } else { 884 $objPage->tpl_message.="○:追加テーブル($table_name)が確認されました。<br>"; 885 } 886 887 return $arrErr; 881 888 } 882 889 883 890 // テーブルの削除(既にテーブルが存在する場合のみ削除する) 884 891 function lfDropTable($table_name, $dsn) { 885 $arrErr = array(); 886 if(sfTabaleExists($table_name, $dsn)) { 887 // Debugモード指定 888 $options['debug'] = PEAR_DB_DEBUG; 889 $objDB = DB::connect($dsn, $options); 890 // 接続成功 891 if(!PEAR::isError($objDB)) { 892 $objDB->query("DROP TABLE " . $table_name); 893 } else { 894 $arrErr['all'] = ">> " . $objDB->message . "<br>"; 895 // エラー文を取得する 896 ereg("\[(.*)\]", $objDB->userinfo, $arrKey); 897 $arrErr['all'].= $arrKey[0] . "<br>"; 898 gfPrintLog($objDB->userinfo, INSTALL_LOG); 899 } 900 } 901 return $arrErr; 892 global $objDb; 893 $arrErr = array(); 894 if($objDb->sfTabaleExists($table_name, $dsn)) { 895 // Debugモード指定 896 $options['debug'] = PEAR_DB_DEBUG; 897 $objDB = DB::connect($dsn, $options); 898 // 接続成功 899 if(!PEAR::isError($objDB)) { 900 $objDB->query("DROP TABLE " . $table_name); 901 } else { 902 $arrErr['all'] = ">> " . $objDB->message . "<br>"; 903 // エラー文を取得する 904 ereg("\[(.*)\]", $objDB->userinfo, $arrKey); 905 $arrErr['all'].= $arrKey[0] . "<br>"; 906 gfPrintLog($objDB->userinfo, INSTALL_LOG); 907 } 908 } 909 return $arrErr; 902 910 } 903 911 904 912 // カラムの追加(既にカラムが存在する場合は作成しない) 905 913 function lfAddColumn($dsn) { 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 if (!sfColumnExists("dtb_customer", "mobile_phone_id", "text", $dsn, true)) {964 965 966 967 968 969 970 971 972 973 914 global $objDBParam; 915 916 // 受注テーブル 917 $objDb->sfColumnExists("dtb_order", "memo01", "text", $dsn, true); 918 $objDb->sfColumnExists("dtb_order", "memo02", "text", $dsn, true); 919 $objDb->sfColumnExists("dtb_order", "memo03", "text", $dsn, true); 920 $objDb->sfColumnExists("dtb_order", "memo04", "text", $dsn, true); 921 $objDb->sfColumnExists("dtb_order", "memo05", "text", $dsn, true); 922 $objDb->sfColumnExists("dtb_order", "memo06", "text", $dsn, true); 923 $objDb->sfColumnExists("dtb_order", "memo07", "text", $dsn, true); 924 $objDb->sfColumnExists("dtb_order", "memo08", "text", $dsn, true); 925 $objDb->sfColumnExists("dtb_order", "memo09", "text", $dsn, true); 926 $objDb->sfColumnExists("dtb_order", "memo10", "text", $dsn, true); 927 $objDb->sfColumnExists("dtb_order", "campaign_id", "int4", $dsn, true); 928 929 // 受注一時テーブル 930 $objDb->sfColumnExists("dtb_order_temp", "order_id", "text", $dsn, true); 931 $objDb->sfColumnExists("dtb_order_temp", "memo01", "text", $dsn, true); 932 $objDb->sfColumnExists("dtb_order_temp", "memo02", "text", $dsn, true); 933 $objDb->sfColumnExists("dtb_order_temp", "memo03", "text", $dsn, true); 934 $objDb->sfColumnExists("dtb_order_temp", "memo04", "text", $dsn, true); 935 $objDb->sfColumnExists("dtb_order_temp", "memo05", "text", $dsn, true); 936 $objDb->sfColumnExists("dtb_order_temp", "memo06", "text", $dsn, true); 937 $objDb->sfColumnExists("dtb_order_temp", "memo07", "text", $dsn, true); 938 $objDb->sfColumnExists("dtb_order_temp", "memo08", "text", $dsn, true); 939 $objDb->sfColumnExists("dtb_order_temp", "memo09", "text", $dsn, true); 940 $objDb->sfColumnExists("dtb_order_temp", "memo10", "text", $dsn, true); 941 942 // 支払情報テーブル 943 $objDb->sfColumnExists("dtb_payment", "charge_flg", "int2 default 1", $dsn, true); 944 $objDb->sfColumnExists("dtb_payment", "rule_min", "numeric", $dsn, true); 945 $objDb->sfColumnExists("dtb_payment", "upper_rule_max", "numeric", $dsn, true); 946 $objDb->sfColumnExists("dtb_payment", "module_id", "int4", $dsn, true); 947 $objDb->sfColumnExists("dtb_payment", "module_path", "text", $dsn, true); 948 $objDb->sfColumnExists("dtb_payment", "memo01", "text", $dsn, true); 949 $objDb->sfColumnExists("dtb_payment", "memo02", "text", $dsn, true); 950 $objDb->sfColumnExists("dtb_payment", "memo03", "text", $dsn, true); 951 $objDb->sfColumnExists("dtb_payment", "memo04", "text", $dsn, true); 952 $objDb->sfColumnExists("dtb_payment", "memo05", "text", $dsn, true); 953 $objDb->sfColumnExists("dtb_payment", "memo06", "text", $dsn, true); 954 $objDb->sfColumnExists("dtb_payment", "memo07", "text", $dsn, true); 955 $objDb->sfColumnExists("dtb_payment", "memo08", "text", $dsn, true); 956 $objDb->sfColumnExists("dtb_payment", "memo09", "text", $dsn, true); 957 $objDb->sfColumnExists("dtb_payment", "memo10", "text", $dsn, true); 958 959 // キャンペーンテーブル 960 $objDb->sfColumnExists("dtb_campaign", "directory_name", "text NOT NULL", $dsn, true); 961 $objDb->sfColumnExists("dtb_campaign", "limit_count", "int4 NOT NULL DEFAULT 0", $dsn, true); 962 $objDb->sfColumnExists("dtb_campaign", "total_count", "int4 NOT NULL DEFAULT 0", $dsn, true); 963 $objDb->sfColumnExists("dtb_campaign", "orverlapping_flg", "int2 NOT NULL DEFAULT 0", $dsn, true); 964 $objDb->sfColumnExists("dtb_campaign", "cart_flg", "int2 NOT NULL DEFAULT 0", $dsn, true); 965 $objDb->sfColumnExists("dtb_campaign", "deliv_free_flg", "int2 NOT NULL DEFAULT 0", $dsn, true); 966 967 // 顧客 968 $objDb->sfColumnExists("dtb_customer", "mailmaga_flg", "int2", $dsn, true); 969 970 // インデックスの確認 971 if (!$objDb->sfColumnExists("dtb_customer", "mobile_phone_id", "text", $dsn, true)) { 972 // インデックスの追加 973 sfIndexExists("dtb_customer", "mobile_phone_id", "dtb_customer_mobile_phone_id_key", 64, $dsn, true); 974 } 975 976 // 顧客メール 977 if ($objDBParam->getValue('db_type') == 'mysql') { 978 $objDb->sfColumnExists("dtb_customer_mail", "secret_key", "varchar(50) unique", $dsn, true); 979 } else { 980 $objDb->sfColumnExists("dtb_customer_mail", "secret_key", "text unique", $dsn, true); 981 } 974 982 } 975 983 976 984 // データの追加(既にデータが存在する場合は作成しない) 977 985 function lfAddData($dsn) { 978 // CSVテーブル 979 if(sfTabaleExists('dtb_csv', $dsn)) { 980 lfInsertCSVData(1,'category_id','カテゴリID',53,'now()','now()', $dsn); 981 lfInsertCSVData(4,'order_id','注文ID',1,'now()','now()', $dsn); 982 lfInsertCSVData(4,'campaign_id','キャンペーンID',2,'now()','now()', $dsn); 983 lfInsertCSVData(4,'customer_id','顧客ID',3,'now()','now()', $dsn); 984 lfInsertCSVData(4,'message','要望等',4,'now()','now()', $dsn); 985 lfInsertCSVData(4,'order_name01','顧客名1',5,'now()','now()', $dsn); 986 lfInsertCSVData(4,'order_name02','顧客名2',6,'now()','now()', $dsn); 987 lfInsertCSVData(4,'order_kana01','顧客名カナ1',7,'now()','now()', $dsn); 988 lfInsertCSVData(4,'order_kana02','顧客名カナ2',8,'now()','now()', $dsn); 989 lfInsertCSVData(4,'order_email','メールアドレス',9,'now()','now()', $dsn); 990 lfInsertCSVData(4,'order_tel01','電話番号1',10,'now()','now()', $dsn); 991 lfInsertCSVData(4,'order_tel02','電話番号2',11,'now()','now()', $dsn); 992 lfInsertCSVData(4,'order_tel03','電話番号3',12,'now()','now()', $dsn); 993 lfInsertCSVData(4,'order_fax01','FAX1',13,'now()','now()', $dsn); 994 lfInsertCSVData(4,'order_fax02','FAX2',14,'now()','now()', $dsn); 995 lfInsertCSVData(4,'order_fax03','FAX3',15,'now()','now()', $dsn); 996 lfInsertCSVData(4,'order_zip01','郵便番号1',16,'now()','now()', $dsn); 997 lfInsertCSVData(4,'order_zip02','郵便番号2',17,'now()','now()', $dsn); 998 lfInsertCSVData(4,'order_pref','都道府県',18,'now()','now()', $dsn); 999 lfInsertCSVData(4,'order_addr01','住所1',19,'now()','now()', $dsn); 1000 lfInsertCSVData(4,'order_addr02','住所2',20,'now()','now()', $dsn); 1001 lfInsertCSVData(4,'order_sex','性別',21,'now()','now()', $dsn); 1002 lfInsertCSVData(4,'order_birth','生年月日',22,'now()','now()', $dsn); 1003 lfInsertCSVData(4,'order_job','職種',23,'now()','now()', $dsn); 1004 lfInsertCSVData(4,'deliv_name01','配送先名前',24,'now()','now()', $dsn); 1005 lfInsertCSVData(4,'deliv_name02','配送先名前',25,'now()','now()', $dsn); 1006 lfInsertCSVData(4,'deliv_kana01','配送先カナ',26,'now()','now()', $dsn); 1007 lfInsertCSVData(4,'deliv_kana02','配送先カナ',27,'now()','now()', $dsn); 1008 lfInsertCSVData(4,'deliv_tel01','電話番号1',28,'now()','now()', $dsn); 1009 lfInsertCSVData(4,'deliv_tel02','電話番号2',29,'now()','now()', $dsn); 1010 lfInsertCSVData(4,'deliv_tel03','電話番号3',30,'now()','now()', $dsn); 1011 lfInsertCSVData(4,'deliv_fax01','FAX1',31,'now()','now()', $dsn); 1012 lfInsertCSVData(4,'deliv_fax02','FAX2',32,'now()','now()', $dsn); 1013 lfInsertCSVData(4,'deliv_fax03','FAX3',33,'now()','now()', $dsn); 1014 lfInsertCSVData(4,'deliv_zip01','郵便番号1',34,'now()','now()', $dsn); 1015 lfInsertCSVData(4,'deliv_zip02','郵便番号2',35,'now()','now()', $dsn); 1016 lfInsertCSVData(4,'deliv_pref','都道府県',36,'now()','now()', $dsn); 1017 lfInsertCSVData(4,'deliv_addr01','住所1',37,'now()','now()', $dsn); 1018 lfInsertCSVData(4,'deliv_addr02','住所2',38,'now()','now()', $dsn); 1019 lfInsertCSVData(4,'payment_total','お支払い合計',39,'now()','now()', $dsn); 1020 } 986 global $objDb; 987 // CSVテーブル 988 if($objDb->sfTabaleExists('dtb_csv', $dsn)) { 989 lfInsertCSVData(1,'category_id','カテゴリID',53,'now()','now()', $dsn); 990 lfInsertCSVData(4,'order_id','注文ID',1,'now()','now()', $dsn); 991 lfInsertCSVData(4,'campaign_id','キャンペーンID',2,'now()','now()', $dsn); 992 lfInsertCSVData(4,'customer_id','顧客ID',3,'now()','now()', $dsn); 993 lfInsertCSVData(4,'message','要望等',4,'now()','now()', $dsn); 994 lfInsertCSVData(4,'order_name01','顧客名1',5,'now()','now()', $dsn); 995 lfInsertCSVData(4,'order_name02','顧客名2',6,'now()','now()', $dsn); 996 lfInsertCSVData(4,'order_kana01','顧客名カナ1',7,'now()','now()', $dsn); 997 lfInsertCSVData(4,'order_kana02','顧客名カナ2',8,'now()','now()', $dsn); 998 lfInsertCSVData(4,'order_email','メールアドレス',9,'now()','now()', $dsn); 999 lfInsertCSVData(4,'order_tel01','電話番号1',10,'now()','now()', $dsn); 1000 lfInsertCSVData(4,'order_tel02','電話番号2',11,'now()','now()', $dsn); 1001 lfInsertCSVData(4,'order_tel03','電話番号3',12,'now()','now()', $dsn); 1002 lfInsertCSVData(4,'order_fax01','FAX1',13,'now()','now()', $dsn); 1003 lfInsertCSVData(4,'order_fax02','FAX2',14,'now()','now()', $dsn); 1004 lfInsertCSVData(4,'order_fax03','FAX3',15,'now()','now()', $dsn); 1005 lfInsertCSVData(4,'order_zip01','郵便番号1',16,'now()','now()', $dsn); 1006 lfInsertCSVData(4,'order_zip02','郵便番号2',17,'now()','now()', $dsn); 1007 lfInsertCSVData(4,'order_pref','都道府県',18,'now()','now()', $dsn); 1008 lfInsertCSVData(4,'order_addr01','住所1',19,'now()','now()', $dsn); 1009 lfInsertCSVData(4,'order_addr02','住所2',20,'now()','now()', $dsn); 1010 lfInsertCSVData(4,'order_sex','性別',21,'now()','now()', $dsn); 1011 lfInsertCSVData(4,'order_birth','生年月日',22,'now()','now()', $dsn); 1012 lfInsertCSVData(4,'order_job','職種',23,'now()','now()', $dsn); 1013 lfInsertCSVData(4,'deliv_name01','配送先名前',24,'now()','now()', $dsn); 1014 lfInsertCSVData(4,'deliv_name02','配送先名前',25,'now()','now()', $dsn); 1015 lfInsertCSVData(4,'deliv_kana01','配送先カナ',26,'now()','now()', $dsn); 1016 lfInsertCSVData(4,'deliv_kana02','配送先カナ',27,'now()','now()', $dsn); 1017 lfInsertCSVData(4,'deliv_tel01','電話番号1',28,'now()','now()', $dsn); 1018 lfInsertCSVData(4,'deliv_tel02','電話番号2',29,'now()','now()', $dsn); 1019 lfInsertCSVData(4,'deliv_tel03','電話番号3',30,'now()','now()', $dsn); 1020 lfInsertCSVData(4,'deliv_fax01','FAX1',31,'now()','now()', $dsn); 1021 lfInsertCSVData(4,'deliv_fax02','FAX2',32,'now()','now()', $dsn); 1022 lfInsertCSVData(4,'deliv_fax03','FAX3',33,'now()','now()', $dsn); 1023 lfInsertCSVData(4,'deliv_zip01','郵便番号1',34,'now()','now()', $dsn); 1024 lfInsertCSVData(4,'deliv_zip02','郵便番号2',35,'now()','now()', $dsn); 1025 lfInsertCSVData(4,'deliv_pref','都道府県',36,'now()','now()', $dsn); 1026 lfInsertCSVData(4,'deliv_addr01','住所1',37,'now()','now()', $dsn); 1027 lfInsertCSVData(4,'deliv_addr02','住所2',38,'now()','now()', $dsn); 1028 lfInsertCSVData(4,'payment_total','お支払い合計',39,'now()','now()', $dsn); 1029 } 1021 1030 } 1022 1031 1023 1032 // CSVテーブルへのデータの追加 1024 1033 function lfInsertCSVData($csv_id,$col,$disp_name,$rank,$create_date,$update_date, $dsn) { 1025 $sql = "insert into dtb_csv(csv_id,col,disp_name,rank,create_date,update_date) values($csv_id,'$col','$disp_name',$rank,$create_date,$update_date);"; 1026 sfDataExists("dtb_csv", "csv_id = ? AND col = ?", array($csv_id, $col), $dsn, $sql, true); 1034 global $objDb; 1035 $sql = "insert into dtb_csv(csv_id,col,disp_name,rank,create_date,update_date) values($csv_id,'$col','$disp_name',$rank,$create_date,$update_date);"; 1036 $objDb->sfDataExists("dtb_csv", "csv_id = ? AND col = ?", array($csv_id, $col), $dsn, $sql, true); 1027 1037 } 1028 1038 ?>
Note: See TracChangeset
for help on using the changeset viewer.