Ignore:
Timestamp:
2007/08/24 12:48:44 (13 years ago)
Author:
nanasess
Message:

クラス化対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/admin/products/product.php

    r15080 r15342  
    55 * http://www.lockon.co.jp/ 
    66 */ 
     7 
     8// {{{ requires 
    79require_once("../require.php"); 
     10require_once(CLASS_PATH . "page_extends/admin/products/LC_Page_Admin_Products_Product_Ex.php"); 
    811 
    9 class LC_Page { 
    10     var $arrCatList; 
    11     var $arrSRANK; 
    12     var $arrForm; 
    13     var $arrSubList; 
    14     var $arrHidden; 
    15     var $arrTempImage; 
    16     var $arrSaveImage; 
    17     var $tpl_mode; 
    18     function LC_Page() { 
    19         $this->tpl_mainpage = 'products/product.tpl'; 
    20         $this->tpl_subnavi = 'products/subnavi.tpl'; 
    21         $this->tpl_mainno = 'products';      
    22         $this->tpl_subno = 'product'; 
    23         $this->tpl_subtitle = '商品登録'; 
    24         global $arrSRANK; 
    25         $this->arrSRANK = $arrSRANK; 
    26         global $arrDISP; 
    27         $this->arrDISP = $arrDISP; 
    28         global $arrCLASS; 
    29         $this->arrCLASS = $arrCLASS; 
    30         global $arrSTATUS; 
    31         $this->arrSTATUS = $arrSTATUS; 
    32         global $arrSTATUS_VALUE; 
    33         $this->arrSTATUS_VALUE = $arrSTATUS_VALUE; 
    34         global $arrSTATUS_IMAGE; 
    35         $this->arrSTATUS_IMAGE = $arrSTATUS_IMAGE; 
    36         global $arrDELIVERYDATE; 
    37         $this->arrDELIVERYDATE = $arrDELIVERYDATE; 
    38         $this->tpl_nonclass = true; 
    39     } 
    40 } 
     12// }}} 
     13// {{{ generate page 
    4114 
    42 $objPage = new LC_Page(); 
    43 $objView = new SC_AdminView(); 
    44 $objSiteInfo = new SC_SiteInfo(); 
    45 $objQuery = new SC_Query(); 
    46  
    47 // 認証可否の判定 
    48 $objSess = new SC_Session(); 
    49 sfIsSuccess($objSess); 
    50  
    51 // ファイル管理クラス 
    52 $objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR); 
    53  
    54 // ファイル情報の初期化 
    55 lfInitFile(); 
    56 // Hiddenからのデータを引き継ぐ 
    57 $objUpFile->setHiddenFileList($_POST); 
    58  
    59 // 検索パラメータの引き継ぎ 
    60 foreach ($_POST as $key => $val) { 
    61     if (ereg("^search_", $key)) { 
    62         $objPage->arrSearchHidden[$key] = $val;  
    63     } 
    64 } 
    65  
    66 // FORMデータの引き継ぎ 
    67 $objPage->arrForm = $_POST; 
    68  
    69 switch($_POST['mode']) { 
    70 // 検索画面からの編集 
    71 case 'pre_edit': 
    72 case 'copy' : 
    73     // 編集時 
    74     if(sfIsInt($_POST['product_id'])){ 
    75         // DBから商品情報の読込 
    76         $arrForm = lfGetProduct($_POST['product_id']); 
    77         // DBデータから画像ファイル名の読込 
    78         $objUpFile->setDBFileList($arrForm); 
    79          
    80         if($_POST['mode'] == "copy"){ 
    81             $arrForm["copy_product_id"] = $arrForm["product_id"]; 
    82             $arrForm["product_id"] = ""; 
    83             // 画像ファイルのコピー 
    84             $arrKey = $objUpFile->keyname; 
    85             $arrSaveFile = $objUpFile->save_file; 
    86              
    87             foreach($arrSaveFile as $key => $val){ 
    88                 lfMakeScaleImage($arrKey[$key], $arrKey[$key], true);  
    89             } 
    90         } 
    91         $objPage->arrForm = $arrForm; 
    92          
    93         // 商品ステータスの変換 
    94         $arrRet = sfSplitCBValue($objPage->arrForm['product_flag'], "product_flag"); 
    95         $objPage->arrForm = array_merge($objPage->arrForm, $arrRet); 
    96         // DBからおすすめ商品の読み込み 
    97         $objPage->arrRecommend = lfPreGetRecommendProducts($_POST['product_id']); 
    98          
    99         // 規格登録ありなし判定 
    100         $objPage->tpl_nonclass = lfCheckNonClass($_POST['product_id']); 
    101         lfProductPage();        // 商品登録ページ 
    102     } 
    103     break; 
    104 // 商品登録・編集 
    105 case 'edit': 
    106     // 規格登録ありなし判定 
    107     $tpl_nonclass = lfCheckNonClass($_POST['product_id']); 
    108      
    109     if($_POST['product_id'] == "" and sfIsInt($_POST['copy_product_id'])){ 
    110         $tpl_nonclass = lfCheckNonClass($_POST['copy_product_id']); 
    111     } 
    112     $objPage->tpl_nonclass = $tpl_nonclass; 
    113      
    114     // 入力値の変換 
    115     $objPage->arrForm = lfConvertParam($objPage->arrForm); 
    116     // エラーチェック 
    117     $objPage->arrErr = lfErrorCheck($objPage->arrForm); 
    118     // ファイル存在チェック 
    119     $objPage->arrErr = array_merge((array)$objPage->arrErr, (array)$objUpFile->checkEXISTS()); 
    120     // エラーなしの場合 
    121     if(count($objPage->arrErr) == 0) { 
    122         lfProductConfirmPage(); // 確認ページ 
    123     } else { 
    124         lfProductPage();        // 商品登録ページ 
    125     } 
    126     break; 
    127 // 確認ページから完了ページへ 
    128 case 'complete': 
    129     $objPage->tpl_mainpage = 'products/complete.tpl'; 
    130      
    131     $objPage->tpl_product_id = lfRegistProduct($_POST);     // データ登録 
    132      
    133     $objQuery = new SC_Query(); 
    134     // 件数カウントバッチ実行 
    135     sfCategory_Count($objQuery); 
    136     // 一時ファイルを本番ディレクトリに移動する 
    137     $objUpFile->moveTempFile(); 
    138  
    139     break; 
    140 // 画像のアップロード 
    141 case 'upload_image': 
    142     // ファイル存在チェック 
    143     $objPage->arrErr = array_merge((array)$objPage->arrErr, (array)$objUpFile->checkEXISTS($_POST['image_key'])); 
    144     // 画像保存処理 
    145     $objPage->arrErr[$_POST['image_key']] = $objUpFile->makeTempFile($_POST['image_key']); 
    146  
    147     // 中、小画像生成 
    148     lfSetScaleImage(); 
    149  
    150     lfProductPage(); // 商品登録ページ 
    151     break; 
    152 // 画像の削除 
    153 case 'delete_image': 
    154     $objUpFile->deleteFile($_POST['image_key']); 
    155     lfProductPage(); // 商品登録ページ 
    156     break; 
    157 // 確認ページからの戻り 
    158 case 'confirm_return': 
    159     // 規格登録ありなし判定 
    160     $objPage->tpl_nonclass = lfCheckNonClass($_POST['product_id']); 
    161     lfProductPage();        // 商品登録ページ 
    162     break; 
    163 // おすすめ商品選択 
    164 case 'recommend_select' : 
    165     lfProductPage();        // 商品登録ページ 
    166     break; 
    167 default: 
    168     // 公開・非公開のデフォルト値 
    169     $objPage->arrForm['status'] = DEFAULT_PRODUCT_DISP; 
    170     lfProductPage();        // 商品登録ページ 
    171     break; 
    172 } 
    173  
    174 if($_POST['mode'] != 'pre_edit') { 
    175     // おすすめ商品の読み込み 
    176     $objPage->arrRecommend = lfGetRecommendProducts(); 
    177 } 
    178  
    179 // 基本情報を渡す 
    180 $objPage->arrInfo = $objSiteInfo->data; 
    181  
    182 // サブ情報の入力があるかどうかチェックする 
    183 $sub_find = false; 
    184 for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    185     if( $objPage->arrForm['sub_title'.$cnt] != "" ||  
    186         $objPage->arrForm['sub_comment'.$cnt] != "" ||  
    187         $objPage->arrForm['sub_image'.$cnt] != "" ||  
    188         $objPage->arrForm['sub_large_image'.$cnt] != "" ||  
    189         is_array($objPage->arrFile['sub_image'.$cnt]) ||  
    190         is_array($objPage->arrFile['sub_large_image'.$cnt])) { 
    191         $sub_find = true; 
    192         break; 
    193     } 
    194 } 
    195 // サブ情報表示・非表示のチェックに使用する。 
    196 $objPage->sub_find = $sub_find; 
    197  
    198 $objView->assignobj($objPage); 
    199 $objView->display(MAIN_FRAME); 
    200 //----------------------------------------------------------------------------------------------------------------------------- 
    201  
    202 /* おすすめ商品の読み込み */ 
    203 function lfGetRecommendProducts() { 
    204     global $objPage; 
    205     $objQuery = new SC_Query(); 
    206      
    207     for($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { 
    208         $keyname = "recommend_id" . $i; 
    209         $delkey = "recommend_delete" . $i; 
    210         $commentkey = "recommend_comment" . $i; 
    211  
    212         if($_POST[$keyname] != "" && $_POST[$delkey] != 1) { 
    213             $arrRet = $objQuery->select("main_list_image, product_code_min, name", "vw_products_allclass AS allcls", "product_id = ?", array($_POST[$keyname]));  
    214             $arrRecommend[$i] = $arrRet[0]; 
    215             $arrRecommend[$i]['product_id'] = $_POST[$keyname]; 
    216             $arrRecommend[$i]['comment'] = $objPage->arrForm[$commentkey]; 
    217         } 
    218     } 
    219     return $arrRecommend; 
    220 } 
    221  
    222 /* おすすめ商品の登録 */ 
    223 function lfInsertRecommendProducts($objQuery, $arrList, $product_id) { 
    224     // 一旦オススメ商品をすべて削除する 
    225     $objQuery->delete("dtb_recommend_products", "product_id = ?", array($product_id)); 
    226     $sqlval['product_id'] = $product_id; 
    227     $rank = RECOMMEND_PRODUCT_MAX; 
    228     for($i = 1; $i <= RECOMMEND_PRODUCT_MAX; $i++) { 
    229         $keyname = "recommend_id" . $i; 
    230         $commentkey = "recommend_comment" . $i; 
    231         $deletekey = "recommend_delete" . $i; 
    232         if($arrList[$keyname] != "" && $arrList[$deletekey] != '1') { 
    233             $sqlval['recommend_product_id'] = $arrList[$keyname]; 
    234             $sqlval['comment'] = $arrList[$commentkey]; 
    235             $sqlval['rank'] = $rank; 
    236             $sqlval['creator_id'] = $_SESSION['member_id']; 
    237             $sqlval['create_date'] = "now()"; 
    238             $sqlval['update_date'] = "now()"; 
    239             $objQuery->insert("dtb_recommend_products", $sqlval); 
    240             $rank--; 
    241         } 
    242     } 
    243 } 
    244  
    245 /* 登録済みおすすめ商品の読み込み */ 
    246 function lfPreGetRecommendProducts($product_id) { 
    247     $objQuery = new SC_Query(); 
    248     $objQuery->setorder("rank DESC"); 
    249     $arrRet = $objQuery->select("recommend_product_id, comment", "dtb_recommend_products", "product_id = ?", array($product_id)); 
    250     $max = count($arrRet); 
    251     $no = 1; 
    252      
    253     for($i = 0; $i < $max; $i++) { 
    254         $arrProductInfo = $objQuery->select("main_list_image, product_code_min, name", "vw_products_allclass AS allcls", "product_id = ?", array($arrRet[$i]['recommend_product_id']));  
    255         $arrRecommend[$no] = $arrProductInfo[0]; 
    256         $arrRecommend[$no]['product_id'] = $arrRet[$i]['recommend_product_id']; 
    257         $arrRecommend[$no]['comment'] = $arrRet[$i]['comment']; 
    258         $no++; 
    259     } 
    260     return $arrRecommend; 
    261 } 
    262  
    263 /* 商品情報の読み込み */ 
    264 function lfGetProduct($product_id) { 
    265     $objQuery = new SC_Query(); 
    266     $col = "*"; 
    267     $table = "vw_products_nonclass AS noncls "; 
    268     $where = "product_id = ?"; 
    269      
    270     // viewも絞込み(mysql対応) 
    271     sfViewWhere("&&noncls_where&&", $where, array($product_id)); 
    272      
    273     $arrRet = $objQuery->select($col, $table, $where, array($product_id)); 
    274          
    275     return $arrRet[0]; 
    276 } 
    277  
    278 /* 商品登録ページ表示用 */ 
    279 function lfProductPage() { 
    280     global $objPage; 
    281     global $objUpFile; 
    282      
    283     // カテゴリの読込 
    284     list($objPage->arrCatVal, $objPage->arrCatOut) = sfGetLevelCatList(false); 
    285  
    286     if($objPage->arrForm['status'] == "") { 
    287         $objPage->arrForm['status'] = 1; 
    288     } 
    289      
    290     if(!is_array($objPage->arrForm['product_flag'])) { 
    291         // 商品ステータスの分割読込 
    292         $objPage->arrForm['product_flag'] = sfSplitCheckBoxes($objPage->arrForm['product_flag']); 
    293     } 
    294      
    295     // HIDDEN用に配列を渡す。 
    296     $objPage->arrHidden = array_merge((array)$objPage->arrHidden, (array)$objUpFile->getHiddenFileList()); 
    297     // Form用配列を渡す。 
    298     $objPage->arrFile = $objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
    299      
    300      
    301     // アンカーを設定 
    302     if($_POST['image_key'] != ""){ 
    303         $anchor_hash = "location.hash='#" . $_POST['image_key'] . "'"; 
    304     }elseif($_POST['anchor_key'] != ""){ 
    305         $anchor_hash = "location.hash='#" . $_POST['anchor_key'] . "'"; 
    306     } 
    307          
    308     $objPage->tpl_onload = "fnCheckSaleLimit('" . DISABLED_RGB . "'); fnCheckStockLimit('" . DISABLED_RGB . "'); " . $anchor_hash; 
    309 } 
    310  
    311 /* ファイル情報の初期化 */ 
    312 function lfInitFile() { 
    313     global $objUpFile; 
    314     $objUpFile->addFile("一覧-メイン画像", 'main_list_image', array('jpg', 'gif', 'png'),IMAGE_SIZE, true, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT); 
    315     $objUpFile->addFile("詳細-メイン画像", 'main_image', array('jpg', 'gif', 'png'), IMAGE_SIZE, true, NORMAL_IMAGE_WIDTH, NORMAL_IMAGE_HEIGHT); 
    316     $objUpFile->addFile("詳細-メイン拡大画像", 'main_large_image', array('jpg', 'gif', 'png'), IMAGE_SIZE, false, LARGE_IMAGE_WIDTH, LARGE_IMAGE_HEIGHT); 
    317     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    318         $objUpFile->addFile("詳細-サブ画像$cnt", "sub_image$cnt", array('jpg', 'gif', 'png'), IMAGE_SIZE, false, NORMAL_SUBIMAGE_WIDTH, NORMAL_SUBIMAGE_HEIGHT);   
    319         $objUpFile->addFile("詳細-サブ拡大画像$cnt", "sub_large_image$cnt", array('jpg', 'gif', 'png'), IMAGE_SIZE, false, LARGE_SUBIMAGE_WIDTH, LARGE_SUBIMAGE_HEIGHT); 
    320     } 
    321     $objUpFile->addFile("商品比較画像", 'file1', array('jpg', 'gif', 'png'), IMAGE_SIZE, false, OTHER_IMAGE1_WIDTH, OTHER_IMAGE1_HEIGHT); 
    322     $objUpFile->addFile("商品詳細ファイル", 'file2', array('pdf'), PDF_SIZE, false, 0, 0, false); 
    323 } 
    324  
    325 /* 商品の登録 */ 
    326 function lfRegistProduct($arrList) { 
    327     global $objUpFile; 
    328     global $arrSTATUS; 
    329     $objQuery = new SC_Query(); 
    330     $objQuery->begin(); 
    331      
    332     // INSERTする値を作成する。 
    333     $sqlval['name'] = $arrList['name']; 
    334     $sqlval['category_id'] = $arrList['category_id']; 
    335     $sqlval['status'] = $arrList['status']; 
    336     $sqlval['product_flag'] = $arrList['product_flag']; 
    337     $sqlval['main_list_comment'] = $arrList['main_list_comment']; 
    338     $sqlval['main_comment'] = $arrList['main_comment']; 
    339     $sqlval['point_rate'] = $arrList['point_rate'];  
    340     $sqlval['deliv_fee'] = $arrList['deliv_fee']; 
    341     $sqlval['comment1'] = $arrList['comment1']; 
    342     $sqlval['comment2'] = $arrList['comment2']; 
    343     $sqlval['comment3'] = $arrList['comment3']; 
    344     $sqlval['comment4'] = $arrList['comment4']; 
    345     $sqlval['comment5'] = $arrList['comment5']; 
    346     $sqlval['comment6'] = $arrList['comment6']; 
    347     $sqlval['main_list_comment'] = $arrList['main_list_comment']; 
    348     $sqlval['sale_limit'] = $arrList['sale_limit']; 
    349     $sqlval['sale_unlimited'] = $arrList['sale_unlimited']; 
    350     $sqlval['deliv_date_id'] = $arrList['deliv_date_id']; 
    351     $sqlval['update_date'] = "Now()"; 
    352     $sqlval['creator_id'] = $_SESSION['member_id']; 
    353     $arrRet = $objUpFile->getDBFileList(); 
    354     $sqlval = array_merge($sqlval, $arrRet); 
    355          
    356     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    357         $sqlval['sub_title'.$cnt] = $arrList['sub_title'.$cnt]; 
    358         $sqlval['sub_comment'.$cnt] = $arrList['sub_comment'.$cnt]; 
    359     } 
    360  
    361     if($arrList['product_id'] == "") { 
    362         if (DB_TYPE == "pgsql") { 
    363             $product_id = $objQuery->nextval("dtb_products", "product_id"); 
    364             $sqlval['product_id'] = $product_id; 
    365         } 
    366         // カテゴリ内で最大のランクを割り当てる 
    367         $sqlval['rank'] = $objQuery->max("dtb_products", "rank", "category_id = ?", array($arrList['category_id'])) + 1; 
    368         // INSERTの実行 
    369         $sqlval['create_date'] = "Now()"; 
    370         $objQuery->insert("dtb_products", $sqlval); 
    371  
    372         if (DB_TYPE == "mysql") { 
    373             $product_id = $objQuery->nextval("dtb_products", "product_id"); 
    374             $sqlval['product_id'] = $product_id; 
    375         } 
    376          
    377         // コピー商品の場合には規格もコピーする 
    378         if($_POST["copy_product_id"] != "" and sfIsInt($_POST["copy_product_id"])){ 
    379             // dtb_products_class のカラムを取得 
    380             $arrColList = sfGetColumnList("dtb_products_class", $objQuery); 
    381             $arrColList_tmp = array_flip($arrColList); 
    382  
    383             // コピーしない列 
    384             unset($arrColList[$arrColList_tmp["product_class_id"]]);     //規格ID 
    385             unset($arrColList[$arrColList_tmp["product_id"]]);           //商品ID 
    386  
    387             $col = sfGetCommaList($arrColList); 
    388  
    389             $objQuery->query("INSERT INTO dtb_products_class (product_id, ". $col .") SELECT ?, " . $col. " FROM dtb_products_class WHERE product_id = ? ORDER BY product_class_id", array($product_id, $_POST["copy_product_id"])); 
    390              
    391         } 
    392  
    393     } else { 
    394         $product_id = $arrList['product_id']; 
    395         // 削除要求のあった既存ファイルの削除 
    396         $arrRet = lfGetProduct($arrList['product_id']); 
    397         $objUpFile->deleteDBFile($arrRet); 
    398          
    399         // カテゴリ内ランクの調整処理 
    400         $old_catid = $objQuery->get("dtb_products", "category_id", "product_id = ?", array($arrList['product_id'])); 
    401         sfMoveCatRank($objQuery, "dtb_products", "product_id", "category_id", $old_catid, $arrList['category_id'], $arrList['product_id']); 
    402          
    403         // UPDATEの実行 
    404         $where = "product_id = ?"; 
    405         $objQuery->update("dtb_products", $sqlval, $where, array($arrList['product_id'])); 
    406     } 
    407      
    408     // 規格登録 
    409     sfInsertProductClass($objQuery, $arrList, $product_id); 
    410      
    411     // おすすめ商品登録 
    412     lfInsertRecommendProducts($objQuery, $arrList, $product_id); 
    413      
    414     $objQuery->commit(); 
    415     return $product_id; 
    416 } 
    417  
    418  
    419 /* 取得文字列の変換 */ 
    420 function lfConvertParam($array) { 
    421     /* 
    422      *  文字列の変換 
    423      *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
    424      *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
    425      *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します  
    426      *  n :  「全角」数字を「半角(ハンカク)」に変換 
    427      */ 
    428     // 人物基本情報 
    429      
    430     // スポット商品 
    431     $arrConvList['name'] = "KVa"; 
    432     $arrConvList['main_list_comment'] = "KVa"; 
    433     $arrConvList['main_comment'] = "KVa"; 
    434     $arrConvList['price01'] = "n"; 
    435     $arrConvList['price02'] = "n"; 
    436     $arrConvList['stock'] = "n"; 
    437     $arrConvList['sale_limit'] = "n"; 
    438     $arrConvList['point_rate'] = "n"; 
    439     $arrConvList['product_code'] = "KVna"; 
    440     $arrConvList['comment1'] = "a"; 
    441     //ホネケーキ:送料の指定なし 
    442     $arrConvList['deliv_fee'] = "n"; 
    443      
    444     // 詳細-サブ 
    445     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    446         $arrConvList["sub_title$cnt"] = "KVa"; 
    447     } 
    448     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    449         $arrConvList["sub_comment$cnt"] = "KVa"; 
    450     } 
    451      
    452     // おすすめ商品 
    453     for ($cnt = 1; $cnt <= RECOMMEND_PRODUCT_MAX; $cnt++) { 
    454         $arrConvList["recommend_comment$cnt"] = "KVa"; 
    455     } 
    456  
    457     // 文字変換 
    458     foreach ($arrConvList as $key => $val) { 
    459         // POSTされてきた値のみ変換する。 
    460         if(isset($array[$key])) { 
    461             $array[$key] = mb_convert_kana($array[$key] ,$val); 
    462         } 
    463     } 
    464      
    465     global $arrSTATUS; 
    466     $array['product_flag'] = sfMergeCheckBoxes($array['product_flag'], count($arrSTATUS)); 
    467      
    468     return $array; 
    469 } 
    470  
    471 // 入力エラーチェック 
    472 function lfErrorCheck($array) { 
    473     global $objPage; 
    474     global $arrAllowedTag; 
    475      
    476     $objErr = new SC_CheckError($array); 
    477     $objErr->doFunc(array("商品名", "name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    478     $objErr->doFunc(array("商品カテゴリ", "category_id", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    479     $objErr->doFunc(array("一覧-メインコメント", "main_list_comment", MTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    480     $objErr->doFunc(array("詳細-メインコメント", "main_comment", LLTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    481     $objErr->doFunc(array("詳細-メインコメント", "main_comment", $arrAllowedTag), array("HTML_TAG_CHECK")); 
    482     $objErr->doFunc(array("ポイント付与率", "point_rate", PERCENTAGE_LEN), array("EXIST_CHECK", "NUM_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    483     $objErr->doFunc(array("商品送料", "deliv_fee", PRICE_LEN), array("NUM_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    484     $objErr->doFunc(array("検索ワード", "comment3", LLTEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    485     $objErr->doFunc(array("メーカーURL", "comment1", URL_LEN), array("SPTAB_CHECK", "URL_CHECK", "MAX_LENGTH_CHECK")); 
    486     $objErr->doFunc(array("発送日目安", "deliv_date_id", INT_LEN), array("NUM_CHECK")); 
    487      
    488     if($objPage->tpl_nonclass) { 
    489         $objErr->doFunc(array("商品コード", "product_code", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK","MAX_LENGTH_CHECK")); 
    490         $objErr->doFunc(array("通常価格", "price01", PRICE_LEN), array("ZERO_CHECK", "SPTAB_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    491         $objErr->doFunc(array("商品価格", "price02", PRICE_LEN), array("EXIST_CHECK", "NUM_CHECK", "ZERO_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    492              
    493         if($array['stock_unlimited'] != "1") { 
    494             $objErr->doFunc(array("在庫数", "stock", AMOUNT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    495         } 
    496     } 
    497      
    498     if($array['sale_unlimited'] != "1") {    
    499         $objErr->doFunc(array("購入制限", "sale_limit", AMOUNT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    500     } 
    501      
    502     if(isset($objErr->arrErr['category_id'])) { 
    503         // 自動選択を防ぐためにダミー文字を入れておく 
    504         $objPage->arrForm['category_id'] = "#"; 
    505     } 
    506      
    507     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) { 
    508         $objErr->doFunc(array("詳細-サブタイトル$cnt", "sub_title$cnt", STEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    509         $objErr->doFunc(array("詳細-サブコメント$cnt", "sub_comment$cnt", LLTEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    510         $objErr->doFunc(array("詳細-サブコメント$cnt", "sub_comment$cnt", $arrAllowedTag),  array("HTML_TAG_CHECK"));    
    511     } 
    512      
    513     for ($cnt = 1; $cnt <= RECOMMEND_PRODUCT_MAX; $cnt++) { 
    514         if($_POST["recommend_id$cnt"] != "" && $_POST["recommend_delete$cnt"] != 1) { 
    515             $objErr->doFunc(array("おすすめ商品コメント$cnt", "recommend_comment$cnt", LTEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    516         } 
    517     } 
    518      
    519     return $objErr->arrErr; 
    520 } 
    521  
    522 /* 確認ページ表示用 */ 
    523 function lfProductConfirmPage() { 
    524     global $objPage; 
    525     global $objUpFile; 
    526     $objPage->tpl_mainpage = 'products/confirm.tpl'; 
    527     $objPage->arrForm['mode'] = 'complete'; 
    528     // カテゴリの読込 
    529     $objPage->arrCatList = sfGetCategoryList(); 
    530     // Form用配列を渡す。 
    531     $objPage->arrFile = $objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL); 
    532 } 
    533  
    534 /* 規格あり判定用(規格が登録されていない場合:TRUE) */ 
    535 function lfCheckNonClass($product_id) { 
    536     if(sfIsInt($product_id)) { 
    537         $objQuery  = new SC_Query(); 
    538         $where = "product_id = ? AND classcategory_id1 <> 0 AND classcategory_id1 <> 0"; 
    539         $count = $objQuery->count("dtb_products_class", $where, array($product_id)); 
    540         if($count > 0) { 
    541             return false; 
    542         } 
    543     } 
    544     return true; 
    545 } 
    546  
    547 // 縮小した画像をセットする 
    548 function lfSetScaleImage(){ 
    549      
    550     $subno = str_replace("sub_large_image", "", $_POST['image_key']); 
    551     switch ($_POST['image_key']){ 
    552         case "main_large_image": 
    553             // 詳細メイン画像 
    554             lfMakeScaleImage($_POST['image_key'], "main_image"); 
    555         case "main_image": 
    556             // 一覧メイン画像 
    557             lfMakeScaleImage($_POST['image_key'], "main_list_image"); 
    558             break; 
    559         case "sub_large_image" . $subno: 
    560             // サブメイン画像 
    561             lfMakeScaleImage($_POST['image_key'], "sub_image" . $subno); 
    562             break; 
    563         default: 
    564             break; 
    565     } 
    566 } 
    567  
    568 // 縮小画像生成 
    569 function lfMakeScaleImage($from_key, $to_key, $forced = false){ 
    570     global $objUpFile; 
    571     $arrImageKey = array_flip($objUpFile->keyname); 
    572      
    573     if($objUpFile->temp_file[$arrImageKey[$from_key]]){ 
    574         $from_path = $objUpFile->temp_dir . $objUpFile->temp_file[$arrImageKey[$from_key]]; 
    575     }elseif($objUpFile->save_file[$arrImageKey[$from_key]]){ 
    576         $from_path = $objUpFile->save_dir . $objUpFile->save_file[$arrImageKey[$from_key]]; 
    577     }else{ 
    578         return ""; 
    579     } 
    580      
    581     if(file_exists($from_path)){ 
    582         // 元画像サイズを取得 
    583         list($from_w, $from_h) = getimagesize($from_path); 
    584          
    585         // 生成先の画像サイズを取得 
    586         $to_w = $objUpFile->width[$arrImageKey[$to_key]]; 
    587         $to_h = $objUpFile->height[$arrImageKey[$to_key]]; 
    588          
    589          
    590         if($forced) $objUpFile->save_file[$arrImageKey[$to_key]] = ""; 
    591          
    592         if(($objUpFile->temp_file[$arrImageKey[$to_key]] == "" and $objUpFile->save_file[$arrImageKey[$to_key]] == "")){ 
    593             $path = $objUpFile->makeThumb($from_path, $to_w, $to_h); 
    594             $objUpFile->temp_file[$arrImageKey[$to_key]] = basename($path); 
    595         } 
    596     }else{ 
    597         return ""; 
    598     } 
    599 } 
    600  
     15$objPage = new LC_Page_Admin_Products_Product_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
    60119?> 
Note: See TracChangeset for help on using the changeset viewer.