Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/html/admin/products/product_class.php

    r12157 r15078  
    2222        $this->tpl_mainno = 'products';      
    2323        $this->tpl_subno = 'product'; 
    24         $this->tpl_subtitle = '¾¦ÉÊÅÐÏ¿'; 
     24        $this->tpl_subtitle = '商品登録'; 
    2525        global $arrSRANK; 
    2626        $this->arrSRANK = $arrSRANK; 
     
    3737$objPage = new LC_Page(); 
    3838$objView = new SC_AdminView(); 
    39 // ǧ¾Ú²ÄÈݤÎȽÄê 
     39// 認証可否の判定 
    4040$objSess = new SC_Session(); 
    4141sfIsSuccess($objSess); 
    4242 
    43 // ¸¡º÷¥Ñ¥é¥á¡¼¥¿¤Î°ú¤­·Ñ¤® 
     43// 検索パラメータの引き継ぎ 
    4444foreach ($_POST as $key => $val) { 
    4545    if (ereg("^search_", $key)) { 
     
    5252 
    5353switch($_POST['mode']) { 
    54 // µ¬³Êºï½üÍ×µá 
     54// 規格削除要求 
    5555case 'delete': 
    5656    $objQuery = new SC_Query(); 
     
    8282    } 
    8383     
    84     lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸    
    85     break; 
    86      
    87 // ÊÔ½¸Í×µá 
     84    lfProductClassPage();   // 規格登録ページ   
     85    break; 
     86     
     87// 編集要求 
    8888case 'pre_edit': 
    8989    $objQuery = new SC_Query(); 
     
    9292     
    9393    if($ret > 0) { 
    94         // µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ(DB¤ÎÃͤòÍ¥À褹¤ë¡£) 
     94        // 規格組み合わせ一覧の取得(DBの値を優先する。) 
    9595        $objPage->arrClassCat = lfGetClassCatListEdit($_POST['product_id']);     
    9696    } 
    9797     
    98     lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸ 
    99     break; 
    100 // µ¬³ÊÁȤ߹ç¤ï¤»É½¼¨ 
     98    lfProductClassPage();   // 規格登録ページ 
     99    break; 
     100// 規格組み合わせ表示 
    101101case 'disp': 
    102102    $objPage->arrForm['select_class_id1'] = $_POST['select_class_id1']; 
     
    105105    $objPage->arrErr = lfClassError(); 
    106106    if (count($objPage->arrErr) == 0) { 
    107         // µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ 
     107        // 規格組み合わせ一覧の取得 
    108108        $objPage->arrClassCat = lfGetClassCatListDisp($_POST['select_class_id1'], $_POST['select_class_id2']); 
    109109    } 
    110110     
    111     lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸ 
    112     break; 
    113 // µ¬³ÊÅÐÏ¿Í×µá 
     111    lfProductClassPage();   // 規格登録ページ 
     112    break; 
     113// 規格登録要求 
    114114case 'edit': 
    115     // ÆþÎÏÃͤÎÊÑ´¹ 
     115    // 入力値の変換 
    116116    $objPage->arrForm = lfConvertParam($_POST); 
    117     // ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     117    // エラーチェック 
    118118    $objPage->arrErr = lfProductClassError($objPage->arrForm); 
    119119     
    120120    if(count($objPage->arrErr) == 0) { 
    121         // ³Îǧ¥Ú¡¼¥¸ÀßÄê 
     121        // 確認ページ設定 
    122122        $objPage->tpl_mainpage = 'products/product_class_confirm.tpl'; 
    123         lfProductConfirmPage(); // ³Îǧ¥Ú¡¼¥¸É½¼¨ 
     123        lfProductConfirmPage(); // 確認ページ表示 
    124124    } else { 
    125         // µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ 
     125        // 規格組み合わせ一覧の取得 
    126126        $objPage->arrClassCat = lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); 
    127         lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸ 
    128     } 
    129     break; 
    130 // ³Îǧ¥Ú¡¼¥¸¤«¤é¤ÎÌá¤ê 
     127        lfProductClassPage();   // 規格登録ページ 
     128    } 
     129    break; 
     130// 確認ページからの戻り 
    131131case 'confirm_return': 
    132     // ¥Õ¥©¡¼¥à¥Ñ¥é¥á¡¼¥¿¤Î°ú¤­·Ñ¤® 
     132    // フォームパラメータの引き継ぎ 
    133133    $objPage->arrForm = $_POST; 
    134     // µ¬³Ê¤ÎÁªÂò¾ðÊó¤Ï°ú¤­·Ñ¤¬¤Ê¤¤¡£ 
     134    // 規格の選択情報は引き継がない。 
    135135    $objPage->arrForm['select_class_id1'] = ""; 
    136136    $objPage->arrForm['select_class_id2'] = ""; 
    137     // µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ(¥Ç¥Õ¥©¥ë¥ÈÃͤϽÐÎϤ·¤Ê¤¤) 
     137    // 規格組み合わせ一覧の取得(デフォルト値は出力しない) 
    138138    $objPage->arrClassCat = lfGetClassCatListDisp($_POST['class_id1'], $_POST['class_id2'], false); 
    139     lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸ 
     139    lfProductClassPage();   // 規格登録ページ 
    140140    break; 
    141141case 'complete': 
    142     // ´°Î»¥Ú¡¼¥¸ÀßÄê    
     142    // 完了ページ設定   
    143143    $objPage->tpl_mainpage = 'products/product_class_complete.tpl'; 
    144     // ¾¦Éʵ¬³Ê¤ÎÅÐÏ¿ 
     144    // 商品規格の登録 
    145145    lfInsertProductClass($_POST, $_POST['product_id']); 
    146146    break; 
    147147default: 
    148     lfProductClassPage();   // µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸ 
     148    lfProductClassPage();   // 規格登録ページ 
    149149    break; 
    150150} 
     
    153153$objView->display(MAIN_FRAME); 
    154154//----------------------------------------------------------------------------------------------------------------------------- 
    155 /* µ¬³ÊÅÐÏ¿¥Ú¡¼¥¸É½¼¨ÍÑ */ 
     155/* 規格登録ページ表示用 */ 
    156156function lfProductClassPage() { 
    157157    global $objPage; 
     
    161161    $arrClass = sfGetIDValueList("dtb_class", 'class_id', 'name'); 
    162162     
    163     // µ¬³ÊʬÎबÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤µ¬³Ê¤Ïɽ¼¨¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ 
     163    // 規格分類が登録されていない規格は表示しないようにする。 
    164164    $arrClassCatCount = sfGetClassCatCount(); 
    165165     
     
    170170    } 
    171171     
    172     // ¾¦ÉÊ̾¤ò¼èÆÀ 
     172    // 商品名を取得 
    173173    $objQuery = new SC_Query(); 
    174174    $product_name = $objQuery->getOne("SELECT name FROM dtb_products WHERE product_id = ?", array($_POST['product_id'])); 
     
    179179    global $objPage; 
    180180     
    181     // ¥Ç¥Õ¥©¥ë¥ÈÃͤÎÆɹþ 
     181    // デフォルト値の読込 
    182182    $col = "product_code, price01, price02, stock, stock_unlimited"; 
    183183    $arrRet = $objQuery->select($col, "dtb_products_class", "product_id = ? AND classcategory_id1 = 0 AND classcategory_id2 = 0", array($product_id));; 
     
    196196} 
    197197 
    198 /* µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ */ 
     198/* 規格組み合わせ一覧の取得 */ 
    199199function lfGetClassCatListDisp($class_id1, $class_id2, $default = true) { 
    200200    global $objPage; 
     
    202202         
    203203    if($class_id2 != "") { 
    204         // µ¬³Ê1¤Èµ¬³Ê2 
     204        // 規格1と規格2 
    205205        $sql = "SELECT * "; 
    206206        $sql.= "FROM vw_cross_class AS crs_cls "; 
     
    208208        $arrRet = $objQuery->getall($sql, array($class_id1, $class_id2)); 
    209209    } else { 
    210         // µ¬³Ê1¤Î¤ß 
     210        // 規格1のみ 
    211211        $sql = "SELECT * "; 
    212212        $sql.= "FROM vw_cross_class AS crs_cls "; 
     
    219219     
    220220    if($default) { 
    221         // ¥Ç¥Õ¥©¥ë¥ÈÃͤòÀßÄê 
     221        // デフォルト値を設定 
    222222        lfSetDefaultClassCat($objQuery, $_POST['product_id'], $max); 
    223223    } 
     
    230230} 
    231231 
    232 /* µ¬³ÊÁȤ߹ç¤ï¤»°ìÍ÷¤Î¼èÆÀ(ÊÔ½¸²èÌÌ) */ 
     232/* 規格組み合わせ一覧の取得(編集画面) */ 
    233233function lfGetClassCatListEdit($product_id) { 
    234234    global $objPage; 
    235     // ´û¸ÊÔ½¸¤Î¾ì¹ç 
     235    // 既存編集の場合 
    236236    $objQuery = new SC_Query(); 
    237237     
     
    258258    $max = count($arrList); 
    259259     
    260     // ¥Ç¥Õ¥©¥ë¥ÈÃͤòÀßÄê 
     260    // デフォルト値を設定 
    261261    lfSetDefaultClassCat($objQuery, $product_id, $max); 
    262262     
     
    272272            $objPage->arrForm['price01:'.$no] = $arrList[$cnt]['price01']; 
    273273            $objPage->arrForm['price02:'.$no] = $arrList[$cnt]['price02']; 
    274             // JavaScript½é´ü²½ÍÑʸ»úÎó 
     274            // JavaScript初期化用文字列 
    275275            $line.= "'check:".$no."',";          
    276276        } 
     
    286286} 
    287287 
    288 /* µ¬³Ê¤ÎÅÐÏ¿ */ 
     288/* 規格の登録 */ 
    289289function lfInsertProductClass($arrList, $product_id) { 
    290290    $objQuery = new SC_Query(); 
     
    292292    $objQuery->begin(); 
    293293         
    294     // ´û¸µ¬³Ê¤Îºï½ü 
     294    // 既存規格の削除 
    295295    $where = "product_id = ?"; 
    296296    $objQuery->delete("dtb_products_class", $where, array($product_id)); 
    297297     
    298298    $cnt = 1; 
    299     // ¤¹¤Ù¤Æ¤Îµ¬³Ê¤òÅÐÏ¿¤¹¤ë¡£ 
     299    // すべての規格を登録する。 
    300300    while($arrList["classcategory_id1:".$cnt] != "") { 
    301301        if($arrList["check:".$cnt] == 1) { 
     
    311311            $sqlval['create_date'] = "now()"; 
    312312            $sqlval['update_date'] = "now()"; 
    313             // INSERT¤Î¼Â¹Ô 
     313            // INSERTの実行 
    314314            $objQuery->insert("dtb_products_class", $sqlval); 
    315315        } 
     
    320320} 
    321321 
    322 // µ¬³ÊÁªÂò¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     322// 規格選択エラーチェック 
    323323function lfClassError() { 
    324324    $objErr = new SC_CheckError(); 
    325     $objErr->doFunc(array("µ¬³Ê1", "select_class_id1"), array("EXIST_CHECK")); 
    326     $objErr->doFunc(array("µ¬³Ê", "select_class_id1", "select_class_id2"), array("TOP_EXIST_CHECK")); 
    327     $objErr->doFunc(array("µ¬³Ê1", "µ¬³Ê2", "select_class_id1", "select_class_id2"), array("DIFFERENT_CHECK")); 
     325    $objErr->doFunc(array("規格1", "select_class_id1"), array("EXIST_CHECK")); 
     326    $objErr->doFunc(array("規格", "select_class_id1", "select_class_id2"), array("TOP_EXIST_CHECK")); 
     327    $objErr->doFunc(array("規格1", "規格2", "select_class_id1", "select_class_id2"), array("DIFFERENT_CHECK")); 
    328328    return $objErr->arrErr; 
    329329} 
    330330 
    331 /* ¼èÆÀʸ»úÎó¤ÎÊÑ´¹ */ 
     331/* 取得文字列の変換 */ 
    332332function lfConvertParam($array) { 
    333333    /* 
    334      *  ʸ»úÎó¤ÎÊÑ´¹ 
    335      *  K :  ¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹ 
    336      *  C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹ 
    337      *  V :  ÂùÅÀÉÕ¤­¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹   
    338      *  n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)¡×¤ËÊÑ´¹ 
     334     *  文字列の変換 
     335     *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
     336     *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
     337     *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します  
     338     *  n :  「全角」数字を「半角(ハンカク)」に変換 
    339339     */ 
    340340 
     
    348348    } 
    349349     
    350     // ʸ»úÊÑ´¹ 
     350    // 文字変換 
    351351    foreach ($arrConvList as $key => $val) { 
    352         // POST¤µ¤ì¤Æ¤­¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£ 
     352        // POSTされてきた値のみ変換する。 
    353353        if(isset($array[$key])) { 
    354354            $array[$key] = mb_convert_kana($array[$key] ,$val); 
     
    358358} 
    359359 
    360 // ¾¦Éʵ¬³Ê¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     360// 商品規格エラーチェック 
    361361function lfProductClassError($array) { 
    362362    $objErr = new SC_CheckError($array); 
     
    365365    while($array["classcategory_id1:".$no] != "") { 
    366366        if($array["check:".$no] == 1) { 
    367             $objErr->doFunc(array("¾¦ÉÊ¥³¡¼¥É", "product_code:".$no, STEXT_LEN), array("MAX_LENGTH_CHECK")); 
     367            $objErr->doFunc(array("商品コード", "product_code:".$no, STEXT_LEN), array("MAX_LENGTH_CHECK")); 
    368368            $objErr->doFunc(array(NORMAL_PRICE_TITLE, "price01:".$no, PRICE_LEN), array("ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    369369            $objErr->doFunc(array(SALE_PRICE_TITLE, "price02:".$no, PRICE_LEN), array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    370370 
    371371            if($array["stock_unlimited:".$no] != '1') { 
    372                 $objErr->doFunc(array("ºß¸Ë¿ô", "stock:".$no, AMOUNT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
     372                $objErr->doFunc(array("在庫数", "stock:".$no, AMOUNT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK")); 
    373373            } 
    374374        } 
     
    384384} 
    385385 
    386 /* ³Îǧ¥Ú¡¼¥¸É½¼¨ÍÑ */ 
     386/* 確認ページ表示用 */ 
    387387function lfProductConfirmPage() { 
    388388    global $objPage; 
Note: See TracChangeset for help on using the changeset viewer.