Ignore:
Timestamp:
2010/08/06 14:52:59 (16 years ago)
Author:
eccuore
Message:

#792(ダウンロード販売機能) 機能追加

Location:
branches/version-2_5-dev/data/class/pages/admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php

    r18776 r18777  
    105105                    break; 
    106106                } 
    107                 $this->tpl_onload = "window.alert('SHOPマスタの登録が完了しました。');"; 
     107                $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。');"; 
    108108            } 
    109109            if( empty($this->arrForm['regular_holiday_ids']) ) { 
    … …  
    120120            $regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']); 
    121121            $this->arrForm['regular_holiday_ids'] = $regular_holiday_ids; 
     122            $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');"; 
    122123        } 
    123124 
    … …  
    166167            "regular_holiday_ids", 
    167168            "latitude", 
    168             "longitude" 
     169            "longitude", 
     170            "downloadable_days", 
     171            "downloadable_days_unlimited" 
    169172        ); 
    170173        return $arrCol; 
    … …  
    235238        $arrConvList['good_traded'] = ""; 
    236239        $arrConvList['message'] = ""; 
     240        $arrConvList['downloadable_days'] = "n"; 
     241        $arrConvList['downloadable_days_unlimited'] = "n"; 
    237242 
    238243        return SC_Utils_Ex::mbConvertKanaWithArray($array, $arrConvList); 
    … …  
    271276        $objErr->doFunc(array("取扱商品", "good_traded", LLTEXT_LEN), array("MAX_LENGTH_CHECK")); 
    272277        $objErr->doFunc(array("メッセージ", "message", LLTEXT_LEN), array("MAX_LENGTH_CHECK")); 
    273  
     278        if(!isset($array['downloadable_days_unlimited']) && $array['downloadable_days_unlimited'] != "1") { 
     279            $objErr->doFunc(array("ダウンロード可能日数", "downloadable_days", DOWNLOAD_DAYS_LEN), array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
     280        } 
    274281        $objErr->doFunc(array("緯度", "latitude", STEXT_LEN), array("NUM_POINT_CHECK", "MAX_LENGTH_CHECK")); 
    275282        $objErr->doFunc(array("経度", "longitude", STEXT_LEN), array("NUM_POINT_CHECK", "MAX_LENGTH_CHECK")); 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php

    r18701 r18777  
    3939    var $objUpFile; 
    4040 
     41    /** ダウンロード用ファイル管理クラスのインスタンス */ 
     42    var $objDownFile; 
     43 
    4144    /** hidden 項目の配列 */ 
    4245    var $arrHidden; 
    … …  
    7174        $this->arrAllowedTag = $masterData->getMasterData("mtb_allowed_tag"); 
    7275        $this->arrMaker = SC_Helper_DB_Ex::sfGetIDValueList("dtb_maker", "maker_id", "name"); 
     76        $this->arrDown = $masterData->getMasterData("mtb_down"); 
    7377        $this->tpl_nonclass = true; 
    7478    } 
    … …  
    8993        SC_Utils_Ex::sfIsSuccess($objSess); 
    9094 
     95        // Downファイル管理クラス 
     96        $this->objDownFile = new SC_UploadFile(DOWN_TEMP_DIR, DOWN_SAVE_DIR); 
     97        // Downファイル情報の初期化 
     98        $this->lfInitDownFile(); 
     99        // Hiddenからのデータを引き継ぐ 
     100        $this->objDownFile->setHiddenFileList($_POST); 
     101 
    91102        // ファイル管理クラス 
    92103        $this->objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR); 
    … …  
    124135                // DBデータから画像ファイル名の読込 
    125136                $this->objUpFile->setDBFileList($this->arrForm); 
     137                // DBデータからダウンロードファイル名の読込 
     138                $this->objDownFile->setDBDownFile($this->arrForm); 
    126139 
    127140                // 商品ステータスの変換 
    … …  
    175188                // 一時ファイルを本番ディレクトリに移動する 
    176189                $this->objUpFile->moveTempFile(); 
     190                $this->objDownFile->moveTempDownFile(); 
    177191 
    178192                break; 
    … …  
    192206            case 'delete_image': 
    193207                $this->objUpFile->deleteFile($_POST['image_key']); 
     208                $this->lfProductPage(); // 商品登録ページ 
     209                break; 
     210            // ダウンロード商品ファイルアップロード 
     211            case 'upload_down': 
     212                // ファイル存在チェック 
     213                $this->arrErr = array_merge((array)$this->arrErr, (array)$this->objDownFile->checkEXISTS($_POST['down_key'])); 
     214                // 画像保存処理 
     215                $this->arrErr[$_POST['down_key']] = $this->objDownFile->makeTempDownFile(); 
     216 
     217                $this->lfProductPage(); // 商品登録ページ 
     218                break; 
     219            // ダウンロードファイルの削除 
     220            case 'delete_down': 
     221                $this->objDownFile->deleteFile($_POST['down_key']); 
    194222                $this->lfProductPage(); // 商品登録ページ 
    195223                break; 
    … …  
    232260            } 
    233261        } 
     262 
    234263        // サブ情報表示・非表示のチェックに使用する。 
    235264        $this->sub_find = $sub_find; 
    … …  
    353382            $this->arrForm['status'] = DEFAULT_PRODUCT_DISP; 
    354383        } 
     384        if($this->arrForm['down'] == "") { 
     385            $this->arrForm['down'] = DEFAULT_PRODUCT_DOWN; 
     386        } 
    355387 
    356388        if(isset($this->arrForm['product_flag']) && !is_array($this->arrForm['product_flag'])) { 
    … …  
    361393        // HIDDEN用に配列を渡す。 
    362394        $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objUpFile->getHiddenFileList()); 
     395        $this->arrHidden = array_merge((array)$this->arrHidden, (array)$this->objDownFile->getHiddenFileList()); 
    363396        // Form用配列を渡す。 
    364397        $this->arrFile = $this->objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
    365398 
     399        $this->arrForm['down_realfilename'] = $this->objDownFile->getFormDownFile(); 
    366400 
    367401        // アンカーを設定 
    … …  
    401435                            "deliv_fee", "comment1", "comment2", "comment3", 
    402436                            "comment4", "comment5", "comment6", "main_list_comment", 
    403                             "sale_limit", "deliv_date_id", "maker_id", "note"); 
     437                            "sale_limit", "deliv_date_id", "maker_id", "note", "down", "down_filename", "down_realfilename"); 
    404438        $arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray); 
    405439 
    … …  
    423457        $sqlval['maker_id'] = $arrList['maker_id']; 
    424458        $sqlval['note'] = $arrList['note']; 
     459        $sqlval['down'] = $arrList['down']; 
     460        $sqlval['down_filename'] = $arrList['down_filename']; 
     461        $sqlval['down_realfilename'] = $arrList['down_realfilename']; 
    425462        $sqlval['update_date'] = "Now()"; 
    426463        $sqlval['creator_id'] = $_SESSION['member_id']; 
    … …  
    490527            $arrRet = $this->lfGetProduct($arrList['product_id']); 
    491528            $this->objUpFile->deleteDBFile($arrRet); 
     529            $this->objDownFile->deleteDBDownFile($arrRet); 
    492530 
    493531            // UPDATEの実行 
    … …  
    580618        $objErr->doFunc(array("メーカー", 'maker_id', INT_LEN), array("NUM_CHECK")); 
    581619 
     620        //ダウンロード商品チェック 
     621        if($array['down'] == "2") { 
     622            $objErr->doFunc(array("ダウンロードファイル名", "down_filename", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     623            if($array['down_realfilename'] == "") { 
     624                $objErr->arrErr['down_realfilename'] = "※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />"; 
     625            } 
     626        } 
     627        //実商品チェック 
     628        if($array['down'] == "1") { 
     629            if($array['down_filename'] != "") { 
     630                $objErr->arrErr['down_filename'] = "※ 実商品の場合はダウンロードファイル名を設定できません。<br />"; 
     631            } 
     632            if($array['down_realfilename'] != "") { 
     633                $objErr->arrErr['down_realfilename'] = "※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />"; 
     634            } 
     635        } 
     636 
    582637        if($this->tpl_nonclass) { 
    583638            $objErr->doFunc(array("商品コード", "product_code", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    … …  
    649704        // Form用配列を渡す。 
    650705        $this->arrFile = $this->objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
     706        $this->arrForm['down_realfilename'] = $this->objDownFile->getFormDownFile(); 
    651707    } 
    652708 
    … …  
    815871        $objQuery->insert('dtb_products_class', $sqlval); 
    816872    } 
     873    /* ダウンロードファイル情報の初期化 */ 
     874    function lfInitDownFile() { 
     875        $this->objDownFile->addFile("ダウンロード販売用ファイル", 'down_file', array('zip', 'jpg', 'mp3', 'gif', 'png'),DOWN_SIZE, true, 0, 0); 
     876    } 
    817877} 
    818878?> 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php

    r18772 r18777  
    165165                    } 
    166166 
     167                    //販売方法チェックを行う 
     168                    $this->checkSalesKind( $this->objFormParam->keyname ,$arrCSV , $arrCSVErr ); 
     169 
    167170                    // 入力エラーチェック 
    168171                    if(count($arrCSVErr) > 0) { 
    … …  
    241244     */ 
    242245    function lfInitParam() { 
    243          
     246 
    244247        // 商品ステータスの上限文字数の算出 
    245248        $masterData = new SC_DB_MasterData_Ex(); 
    … …  
    306309            $this->objFormParam->addParam("関連商品コメント($cnt)", "recommend_comment$cnt", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    307310        } 
     311 
     312        $this->objFormParam->addParam("実商品・ダウンロード(1:実商品 2:ダウンロード)", "down", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
     313        $this->objFormParam->addParam("ダウンロードファイル名", "down_filename", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     314        $this->objFormParam->addParam("ダウンロード商品用ファイル", "down_realfilename", LTEXT_LEN, "KVa", array("DOWN_FILE_EXISTS","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    308315 
    309316        $this->objFormParam->addParam("商品カテゴリ", "category_id", STEXT_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK")); 
    … …  
    372379            $where = "product_id = ?"; 
    373380            $objQuery->update("dtb_products", $sqlval, $where, array($sqlval['product_id'])); 
    374              
     381 
    375382            $product_id = $sqlval['product_id']; 
    376383        } else { 
    … …  
    379386            unset($sqlval['product_id']); 
    380387            $sqlval['create_date'] = $time; 
    381              
     388 
    382389            // INSERTの実行 
    383390            $objQuery->insert("dtb_products", $sqlval); 
    384              
     391 
    385392            $product_id = $objQuery->currval("dtb_products","product_id"); 
    386393        } 
    … …  
    535542             . "</font></br>\n"; 
    536543    } 
     544 
     545    /** 
     546     * 実商品・ダウンロード判定チェック処理 
     547     * 
     548     * @param $p_keyname    csv項目番号配列 
     549     * @param $p_arrCSV     csv入力データ配列 
     550     * @param $p_arrCSVErr  エラー格納配列 
     551     */ 
     552    function checkSalesKind( $p_keyname , $p_arrCSV , &$p_arrCSVErr ){ 
     553 
     554        //実商品・ダウンロードカラムの値を取得する 
     555        $sDownFlg_Key = array_search('down', $p_keyname ); 
     556        if( $sDownFlg_Key != '' ){ 
     557            //実商品・ダウンロードカラムが存在する場合 
     558            //実商品・ダウンロードカラムの値を取得する 
     559            $sDownFlg = $p_arrCSV[$sDownFlg_Key]; 
     560 
     561            //ダウンロードファイル名を取得する 
     562            $sFilename_Key = array_search('down_filename', $p_keyname ); 
     563            $sFilename = $p_arrCSV[$sFilename_Key]; 
     564 
     565            //ダウンロード商品用ファイルアップロードを取得する 
     566            $sRealdown_filename_Key = array_search('down_realfilename', $p_keyname ); 
     567            $sRealdown_filename = $p_arrCSV[$sRealdown_filename_Key]; 
     568 
     569            if( $sDownFlg == 1 ){ 
     570                //実商品の場合 
     571                if( mb_strlen($sFilename) > 0 ){ 
     572                    $p_arrCSVErr["down_filename"] = "※ 実商品の場合はダウンロードファイル名は入力できません。\n"; 
     573                } 
     574                if( mb_strlen($sRealdown_filename) > 0 ){ 
     575                    $p_arrCSVErr["down_realfilename"] = "※ 実商品の場合はダウンロード商品用ファイルアップロードは入力できません。\n"; 
     576                } 
     577            }else if( $sDownFlg == 2 ){ 
     578                //ダウンロード商品の場合 
     579                if( mb_strlen($sFilename) <= 0 ){ 
     580                    $p_arrCSVErr["down_filename"] = "※ ダウンロード商品の場合はダウンロードファイル名は必須です。\n"; 
     581                } 
     582                if( mb_strlen($sRealdown_filename) <=  0 ){ 
     583                    $p_arrCSVErr["down_realfilename"] = "※ ダウンロード商品の場合はダウンロード商品用ファイルアップロードは必須です。\n"; 
     584                } 
     585            }else{ 
     586                //その他 
     587                $p_arrCSVErr["down"] = "※ 実商品・ダウンロード(1:実商品 2:ダウンロード)の設定が不正です。\n"; 
     588            } 
     589        } 
     590    } 
    537591} 
    538592?> 
Note: See TracChangeset for help on using the changeset viewer.