Changeset 20617 for branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
- Timestamp:
- 2011/03/12 00:02:29 (13 years ago)
- bzr:base-revision:
- svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20616
- bzr:committer:
- Kentaro Ohkouchi <ohkouchi@loop-az.jp>
- bzr:file-ids:
data/Smarty/templates/admin/products/product_class.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fproducts%2Fproduct_class.tpl
data/class/SC_UploadFile.php 18171@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2FSC_UploadFile.php
data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php 15559@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_ProductClass.php
data/module/gdthumb.php 15668@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fmodule%2Fgdthumb.php- bzr:mapping-version:
- v4
- bzr:merge:
ohkouchi@loop-az.jp-20110311150104-eyf782ssm47r344u- bzr:repository-uuid:
- 1e3b908f-19a9-db11-a64c-001125224ba8
- bzr:revision-id:
- ohkouchi@loop-az.jp-20110311150225-0v81rm3xh533aakt
- bzr:revno:
- 3344
- bzr:revprop:branch-nick:
- branches/version-2_5-dev
- bzr:root:
- branches/version-2_5-dev
- bzr:text-revisions:
data/class/SC_UploadFile.php ohkouchi@loop-az.jp-20110311150104-eyf782ssm47r344u
data/module/gdthumb.php ohkouchi@loop-az.jp-20110311150104-eyf782ssm47r344u- bzr:timestamp:
- 2011-03-12 00:02:25.581000090 +0900
- bzr:user-agent:
- bzr2.2.1+bzr-svn1.0.4
- svn:original-date:
- 2011-03-11T15:02:25.581000Z
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
r20612 r20617 82 82 // Downファイル管理クラスを初期化 83 83 $this->objDownFile = new SC_UploadFile_Ex(DOWN_TEMP_REALDIR, DOWN_SAVE_REALDIR); 84 $this->initDownFile($count, $this->objDownFile);85 84 86 85 switch ($this->getMode()) { … … 88 87 // 編集実行 89 88 case 'edit': 90 91 89 $this->arrErr = $this->lfCheckProductsClass($objFormParam); 92 90 … … 117 115 case 'delete': 118 116 $this->doDelete($objFormParam->getValue('product_id')); 117 $objFormParam->setValue('check', array()); 119 118 break; 120 119 … … 138 137 139 138 // ダウンロード商品ファイルアップロード 140 case 'upload_down': 141 142 /* TODO 143 $product_id = $objFormParam->getValue('product_id'); 144 $down_key = $objFormParam->getValue('down_key'); 145 // 編集画面用パラメータをセット 146 $this->doPreEdit($product_id, true); 147 // Hiddenからのデータを引き継ぐ 148 $this->objDownFile->setHiddenKikakuFileList($_POST); 149 // ファイル存在チェック 150 $this->arrErr = array_merge((array)$this->arrErr, (array)$this->objDownFile->checkEXISTS($down_key)); 151 // ファイル保存処理 152 $this->arrErr[$down_key] = $this->objDownFile->makeTempDownFile($down_key); 153 // HIDDEN用に配列を渡す。 154 $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 155 // Form用に配列を渡す。 156 $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 157 // 規格の組み合わせ一覧を表示 158 $this->doDisp($product_id, 159 $objFormParam->getValue('select_class_id1'), 160 $objFormParam->getValue('select_class_id2'), $objFormParam); 161 */ 139 case 'file_upload': 140 $this->doFileUpload($objFormParam); 162 141 break; 163 142 164 143 // ダウンロードファイルの削除 165 case 'delete_down': 166 167 /* TODO 168 $product_id = $objFormParam->getValue('product_id'); 169 $down_key = $objFormParam->getValue('down_key'); 170 // 編集画面用パラメータをセット 171 $this->doPreEdit($product_id, true); 172 // Hiddenからのデータを引き継ぐ 173 $this->objDownFile->setHiddenKikakuFileList($_POST); 174 // ファイル削除処理 175 $this->objDownFile->deleteKikakuFile($down_key); 176 // HIDDEN用に配列を渡す。 177 $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 178 // Form用に配列を渡す。 179 $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile()); 180 // 規格の組み合わせ一覧を表示 181 $this->doDisp($product_id, 182 $objFormParam->getValue('select_class_id1'), 183 $objFormParam->getValue('select_class_id2'), $objFormParam); 184 */ 144 case 'file_delete': 145 $this->doFileDelete($objFormParam); 185 146 break; 186 147 … … 190 151 $objFormParam->setParam($_POST); 191 152 $objFormParam->convParam(); 192 193 /* TODO194 // Hiddenからのデータを引き継ぐ195 $this->objDownFile->setHiddenFileList($_POST);196 // HIDDEN用に配列を渡す。197 $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList());198 // Form用に配列を渡す。199 $this->arrForm = array_merge((array)$this->arrForm, (array)$this->objDownFile->getFormKikakuDownFile());200 */201 202 153 break; 154 203 155 case 'complete': 204 156 $this->tpl_mainpage = 'products/product_class_complete.tpl'; 205 // TODO $this->objDownFile->setHiddenFileList($_POST);206 207 $this->registerProductClass($objFormParam->getHashArray(),$objFormParam->getValue('product_id'),157 $this->doUploadComplete($objFormParam); 158 $this->registerProductClass($objFormParam->getHashArray(), 159 $objFormParam->getValue('product_id'), 208 160 $objFormParam->getValue('total')); 209 // TODO210 // 一時ファイルを本番ディレクトリに移動する211 // $this->objDownFile->moveTempDownFile();212 161 break; 213 162 … … 229 178 parent::destroy(); 230 179 } 180 231 181 /** 232 182 * パラメータ初期化 … … 255 205 256 206 // 規格プルダウン 257 $objFormParam->addParam("規格1", "select_class_id1", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK"));258 $objFormParam->addParam("規格2", "select_class_id2", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK"));259 207 $objFormParam->addParam("規格1", "class_id1", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 260 208 $objFormParam->addParam("規格2", "class_id2", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); … … 275 223 $objFormParam->addParam("商品種別", "product_type_id", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 276 224 $objFormParam->addParam("削除フラグ", "del_flg", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 277 $objFormParam->addParam(" DLファイル名", "down_filename", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK"));278 $objFormParam->addParam(" DLファイル名", "down_realfilename", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK"));225 $objFormParam->addParam("ダウンロード販売用ファイル名", "down_filename", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); 226 $objFormParam->addParam("ダウンロード販売用ファイル名", "down_realfilename", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); 279 227 $objFormParam->addParam("チェックボックス", "check", INT_LEN, 'n', array("MAX_LENGTH_CHECK", "NUM_CHECK")); 280 $objFormParam->addParam("ファイルアップロード用キー", "down_key", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); 281 } 282 283 /** 284 * Downファイル管理クラスを初期化 285 * 286 * @param 行数 $count 287 * @param SC_FormParam $objDownFile 288 */ 289 function initDownFile($count, &$objDownFile) { 290 $i = 1; 291 for ($i = 1; $i < $count; $i++) { 292 $objDownFile->addFile("ダウンロード販売用ファイル", 'down_realfilename'. ":" . $i, explode(",", DOWNLOAD_EXTENSION), DOWN_SIZE, true, 0, 0); 293 } 228 $objFormParam->addParam("ファイルアップロード用キー", "upload_index", STEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK")); 294 229 } 295 230 … … 391 326 $arrPC['create_date'] = "now()"; 392 327 $arrPC['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 328 /* 329 * チェックを入れない商品は product_type_id が NULL になるので, 0 を入れる 330 */ 331 $arrPC['product_type_id'] = SC_Utils_Ex::isBlank($arrPC['product_type_id']) ? 0 : $arrPC['product_type_id']; 393 332 $objQuery->insert("dtb_products_class", $arrPC); 394 333 } … … 416 355 function lfCheckSelectClass() { 417 356 $objErr = new SC_CheckError_Ex(); 418 $objErr->doFunc(array("規格1", " select_class_id1"), array("EXIST_CHECK"));419 $objErr->doFunc(array("規格", " select_class_id1", "select_class_id2"), array("TOP_EXIST_CHECK"));420 $objErr->doFunc(array("規格1", "規格2", " select_class_id1", "select_class_id2"), array("DIFFERENT_CHECK"));357 $objErr->doFunc(array("規格1", "class_id1"), array("EXIST_CHECK")); 358 $objErr->doFunc(array("規格", "class_id1", "select_class_id2"), array("TOP_EXIST_CHECK")); 359 $objErr->doFunc(array("規格1", "規格2", "class_id1", "class_id2"), array("DIFFERENT_CHECK")); 421 360 return $objErr->arrErr; 422 361 } … … 504 443 function doDisp(&$objFormParam) { 505 444 $product_id = $objFormParam->getValue('product_id'); 506 $ select_class_id1 = $objFormParam->getValue('select_class_id1');507 $ select_class_id2 = $objFormParam->getValue('select_class_id2');445 $class_id1 = $objFormParam->getValue('class_id1'); 446 $class_id2 = $objFormParam->getValue('class_id2'); 508 447 509 448 // すべての組み合わせを取得し, フォームに設定 510 $arrClassCat = $this->getAllClassCategory($ select_class_id1, $select_class_id2);449 $arrClassCat = $this->getAllClassCategory($class_id1, $class_id2); 511 450 $total = count($arrClassCat); 512 451 $objFormParam->setValue('total', $total); 513 452 $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrClassCat)); 514 453 515 // class_id1, class_id2 は select_class_id1で上書き516 $objFormParam->setValue('class_id1', $ select_class_id1);517 $objFormParam->setValue('class_id2', $ select_class_id2);454 // class_id1, class_id2 を, 入力値で上書き 455 $objFormParam->setValue('class_id1', $class_id1); 456 $objFormParam->setValue('class_id2', $class_id2); 518 457 519 458 // 商品情報を取得し, フォームに設定 … … 546 485 $objFormParam->setValue('class_id1', $class_id1); 547 486 $objFormParam->setValue('class_id2', $class_id2); 548 $objFormParam->setValue('select_class_id1', $class_id1);549 $objFormParam->setValue('select_class_id2', $class_id2);550 487 $this->doDisp($objFormParam); 551 488 … … 567 504 $objFormParam->setValue('check', $arrChecks); 568 505 569 // class_id1, class_id2 を 上書き506 // class_id1, class_id2 を取得値で上書き 570 507 $objFormParam->setValue('class_id1', $class_id1); 571 508 $objFormParam->setValue('class_id2', $class_id2); … … 598 535 $objDb = new SC_Helper_DB_Ex(); 599 536 $objDb->sfCountCategory($objQuery); 537 } 538 } 539 540 /** 541 * ファイルアップロードを行う. 542 * 543 * 以下のチェックを行い, ファイルを一時領域へアップロードする. 544 * 1. ファイルサイズチェック 545 * 2. 拡張子チェック 546 * 547 * TODO 548 * SC_CheckError クラスや, SC_UploadFile クラスが多次元配列に対応して 549 * いないため, 独自のロジックを使用している. 550 * 551 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 552 * @return void 553 */ 554 function doFileUpload(&$objFormParam) { 555 $index = $objFormParam->getValue('upload_index'); 556 $arrDownRealFiles = $objFormParam->getValue('down_realfilename'); 557 558 if ($_FILES['down_realfilename']['size'][$index] <= 0) { 559 $this->arrErr['down_realfilename'][$index] = '※ ファイルがアップロードされていません'; 560 } else if ($_FILES['down_realfilename']['size'][$index] > DOWN_SIZE * 1024 ) { 561 $size = DOWN_SIZE; 562 $byte = 'KB'; 563 if ($size >= 1000) { 564 $size = $size / 1000; 565 $byte = 'MB'; 566 } 567 $this->arrErr['down_realfilename'][$index] = "※ ダウンロード販売用ファイル名のファイルサイズは" . $size . $byte . "以下のものを使用してください。<br />"; 568 } else { 569 $array_ext = explode(".", $_FILES['down_realfilename']['name'][$index]); 570 $is_error = true; 571 $strExt = ""; 572 573 foreach (explode(",", DOWNLOAD_EXTENSION) as $checkExt ) { 574 $ext = ""; 575 // チェック拡張子のピリオドの数を取得('tar.gz'の場合1個、'jpg'のように通常は0個) 576 $count_period = substr_count($checkExt, "."); 577 if($count_period > 0) { 578 for ($i = max(array_keys($array_ext)) - $count_period; $i < count($array_ext); $i++) { 579 $ext .= $array_ext[$i] . "."; 580 } 581 $ext = preg_replace("/.$/", "" ,$ext); 582 } else { 583 $ext = $array_ext[ count ( $array_ext ) - 1 ]; 584 } 585 $ext = strtolower($ext); 586 587 if ($ext == $checkExt) { 588 $is_error = false; 589 } 590 if($strExt == "") { 591 $strExt .= $checkExt; 592 } else { 593 $strExt .= "・$checkExt"; 594 } 595 } 596 if ($is_error) { 597 $this->arrErr['down_realfilename'][$index] = "※ ダウンロード販売用ファイル名で許可されている形式は、" . $strExt . "です。<br />"; 598 } 599 600 $uniqname = date('mdHi') . "_" . uniqid("")."."; 601 $temp_file = preg_replace("/^.*\./", $uniqname, $_FILES['down_realfilename']['name'][$index]); 602 603 if (move_uploaded_file($_FILES['down_realfilename']['tmp_name'][$index], DOWN_TEMP_REALDIR . $temp_file)) { 604 $arrDownRealFiles[$index] = $temp_file; 605 $objFormParam->setValue('down_realfilename', $arrDownRealFiles); 606 GC_Utils_Ex::gfPrintLog($_FILES['down_realfilename']['name'][$index] ." -> ". realpath(DOWN_TEMP_REALDIR . $temp_file)); 607 } else { 608 $objErr->arrErr[$keyname] = '※ ファイルのアップロードに失敗しました。<br />'; 609 GC_Utils_Ex::gfPrintLog('File Upload Error!: ' . $_FILES['down_realfilename']['name'][$index] . " -> " . DOWN_TEMP_REALDIR . $temp_file); 610 } 611 } 612 } 613 614 /** 615 * アップロードしたファイルを削除する. 616 * 617 * TODO 一時ファイルの削除 618 * 619 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 620 * @return void 621 */ 622 function doFileDelete(&$objFormParam) { 623 $objImage = new SC_Image_Ex(DOWN_TEMP_REALDIR); 624 $arrRealFileName = $objFormParam->getValue('down_realfilename'); 625 $index = $objFormParam->getValue('upload_index'); 626 $objImage->deleteImage($arrRealFileName[$index], DOWN_SAVE_REALDIR); 627 $arrRealFileName[$index] = ''; 628 $objFormParam->setValue('down_realfilename', $arrRealFileName); 629 } 630 631 /** 632 * アップロードした一時ファイルを保存する. 633 * 634 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 635 * @return void 636 */ 637 function doUploadComplete(&$objFormParam) { 638 $objImage = new SC_Image_Ex(DOWN_TEMP_REALDIR); 639 $arrRealFileName = $objFormParam->getValue('down_realfilename'); 640 foreach ($arrRealFileName as $real_file_name) { 641 $objImage->moveTempImage($real_file_name, DOWN_SAVE_REALDIR); 600 642 } 601 643 }
Note: See TracChangeset
for help on using the changeset viewer.