Changeset 20071


Ignore:
Timestamp:
2011/02/02 20:55:36 (13 years ago)
Author:
nanasess
bzr:base-revision:
ohkouchi@loop-az.jp-20110202090956-vnxxjstny3w860q3
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/pages/shopping/LC_Page_Shopping.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110202112734-ekyumnc7pcgigygi
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110202115525-9evoy1y4rcpgsrr5
bzr:revno:
2799
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:timestamp:
2011-02-02 20:55:25.065000057 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-02T11:55:25.065000Z
Message:

#984([フロント]商品購入 のリファクタリング)

  • /shopping/LC_Page_Shopping.php
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r20070 r20071  
    3333 */ 
    3434class LC_Page_Shopping extends LC_Page { 
    35  
    36     // {{{ properties 
    37  
    38     /** フォームパラメータ */ 
    39     var $objFormParam; 
    40  
    41     /** 年 */ 
    42     var $year; 
    4335 
    4436    // }}} 
     
    5850        $this->arrJob = $masterData->getMasterData("mtb_job"); 
    5951        $this->tpl_onload = 'fnCheckInputDeliv();'; 
     52 
     53        $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
     54        $this->arrYear = $objDate->getYear('', 1950, ''); 
     55        $this->arrMonth = $objDate->getMonth(true); 
     56        $this->arrDay = $objDate->getDay(true); 
     57 
    6058        $this->httpCacheControl('nocache'); 
    6159    } 
     
    8381        $objCookie = new SC_Cookie(); 
    8482        $objPurchase = new SC_Helper_Purchase_Ex(); 
    85         $this->objFormParam = new SC_FormParam();            // フォーム用 
    86         $this->lfInitParam();                                // パラメータ情報の初期化 
    87         $this->objFormParam->setParam($_POST);            // POST値の取得 
    88  
    89         $uniqid = $objSiteSess->getUniqId(); 
    90         $objPurchase->verifyChangeCart($uniqid, $objCartSess); 
    91  
    92         $this->tpl_uniqid = $uniqid; 
     83        $objFormParam = new SC_FormParam(); 
     84 
     85        $this->lfInitParam($objFormParam); 
     86        $objFormParam->setParam($_POST); 
     87 
     88        $this->tpl_uniqid = $objSiteSess->getUniqId(); 
     89        $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess); 
    9390 
    9491        $this->cartKey = $objCartSess->getKey(); 
    9592 
    96         // ログインチェック 
    97         if($objCustomer->isLoginSuccess(true)) { 
    98  
    99             switch ($this->cartKey) { 
    100             // ダウンロード商品の場合は支払方法設定画面に転送 
    101             case PRODUCT_TYPE_DOWNLOAD: 
    102                 // 会員情報の住所を受注一時テーブルに書き込む 
    103                 $objPurchase->saveOrderTemp($uniqid, array(), $objCustomer); 
    104                 // 正常に登録されたことを記録しておく 
    105                 $objSiteSess->setRegistFlag(); 
    106                 SC_Response_Ex::sendRedirect('payment.php'); 
    107                 exit; 
    108                 break; 
    109  
    110             case PRODUCT_TYPE_NORMAL: 
    111             default: 
    112                 // お届け先設定画面に転送 
    113                 SC_Response_Ex::sendRedirect('deliv.php'); 
     93        // ログイン済みの場合は次画面に遷移 
     94        if ($objCustomer->isLoginSuccess(true)) { 
     95            SC_Response_Ex::sendRedirect( 
     96                    $this->getNextLocation($this->cartKey, $this->tpl_uniqid, 
     97                                           $objCustomer)); 
     98            exit; 
     99        } 
     100        // 非会員かつ, ダウンロード商品の場合はエラー表示 
     101        else { 
     102            if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 
     103                SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 
     104                    "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>" 
     105                  . "お手数ですが、会員登録をお願いします。"); 
    114106                exit; 
    115107            } 
     
    119111            if (!SC_Helper_Session_Ex::isValidToken()) { 
    120112                SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
    121             } 
    122         } 
    123  
    124         switch($this->getMode()) { 
     113                exit; 
     114            } 
     115        } 
     116 
     117        switch ($this->getMode()) { 
     118        // 登録 
    125119        case 'nonmember_confirm': 
    126120            $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    127121            $this->tpl_title = 'お客様情報入力'; 
    128             //非会員のダウンロード商品を含んだ買い物はNG 
    129             if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 
    130                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 
    131                                              "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 
    132             } 
    133             // ※breakなし 
    134         case 'confirm': 
    135             $this->arrErr = $this->lfCheckError(); 
    136  
    137             // 入力エラーなし 
    138             if(count($this->arrErr) == 0) { 
    139                 // DBへのデータ登録 
    140                 $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey); 
    141                 // 正常に登録されたことを記録しておく 
     122 
     123            $this->arrErr = $this->lfCheckError($objFormParam); 
     124 
     125            if (SC_Utils_Ex::isBlank($this->arrErr)) { 
     126 
     127                $this->lfRegistData($this->tpl_uniqid, $objPurchase, 
     128                                    $objCustomer, $objFormParam); 
     129 
    142130                $objSiteSess->setRegistFlag(); 
    143                 // お支払い方法選択ページへ移動 
    144131                SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH); 
    145132                exit; 
    146133            } 
    147  
    148134            break; 
     135 
    149136        // 前のページに戻る 
    150137        case 'return': 
    151             // 確認ページへ移動 
    152138            SC_Response_Ex::sendRedirect(CART_URLPATH); 
    153139            exit; 
    154140            break; 
    155141 
     142        // 複数配送 
    156143        case 'multiple': 
    157             $this->arrErr = $this->lfCheckError(); 
    158  
    159             // 入力エラーなし 
    160             if(count($this->arrErr) == 0) { 
    161                 // DBへのデータ登録 
    162                 $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey, true); 
    163                 // 正常に登録されたことを記録しておく 
     144            $this->arrErr = $this->lfCheckError($objFormParam); 
     145 
     146            if (SC_Utils_Ex::isBlank($this->arrErr)) { 
     147                $this->lfRegistData($this->tpl_uniqid, $objPurchase, 
     148                                    $objCustomer, $objFormParam, true); 
     149 
    164150                $objSiteSess->setRegistFlag(); 
    165  
    166151                SC_Response_Ex::sendRedirect(MULTIPLE_URLPATH); 
    167152                exit; 
    168153            } 
    169             // breakなし 
    170  
     154            // ※breakなし 
     155 
     156        // 入力 
    171157        case 'nonmember': 
    172158            $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    173159            $this->tpl_title = 'お客様情報入力'; 
    174             //非会員のダウンロード商品を含んだ買い物はNG 
    175             if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) { 
    176                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, 
    177                                              "ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>お手数ですが、会員登録をお願いします。"); 
    178             } 
     160 
    179161            // ※breakなし 
     162 
    180163        default: 
    181             if(isset($_GET['from']) && $_GET['from'] == 'nonmember') { 
     164            // 前のページから戻ってきた場合 
     165            if (isset($_GET['from']) && $_GET['from'] == 'nonmember') { 
    182166                $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    183167                $this->tpl_title = 'お客様情報入力'; 
    184168            } 
    185             $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
    186             if (empty($arrOrderTemp)) $arrOrderTemp = array('order_email' => "", 
    187                                                             'order_birth' => ""); 
    188             $arrShippingTemp = $objPurchase->getShippingTemp(); 
    189             // DB値の取得 
    190             $this->objFormParam->setParam($arrOrderTemp); 
    191             /* 
    192              * count($arrShippingTemp) > 1 は複数配送であり, 
    193              * $arrShippingTemp[0] は注文者が格納されている 
    194              */ 
    195             if (count($arrShippingTemp) > 1) { 
    196                 $this->objFormParam->setParam($arrShippingTemp[1]); 
    197             } else { 
    198                 $this->objFormParam->setParam($arrShippingTemp[0]); 
    199             } 
    200             $this->objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 
    201             $this->objFormParam->setDBDate($arrOrderTemp['order_birth']); 
     169 
     170            $this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid); 
    202171            $objPurchase->unsetShippingTemp(); 
    203172        } 
    204173 
    205         // クッキー判定 
     174        // 記憶したメールアドレスを取得 
    206175        $this->tpl_login_email = $objCookie->getCookie('login_email'); 
    207         if($this->tpl_login_email != "") { 
     176        if (!SC_Utils_Ex::isBlank($this->tpl_login_email)) { 
    208177            $this->tpl_login_memory = "1"; 
    209178        } 
    210179 
    211         // 生年月日選択肢の取得 
    212         $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
    213         $this->arrYear = $objDate->getYear('', 1950, ''); 
    214         $this->arrMonth = $objDate->getMonth(true); 
    215         $this->arrDay = $objDate->getDay(true); 
    216  
    217180        // 入力値の取得 
    218         $this->arrForm = $this->objFormParam->getFormParamList(); 
     181        $this->arrForm = $objFormParam->getFormParamList(); 
    219182 
    220183        $this->transactionid = SC_Helper_Session_Ex::getToken(); 
    221184 
    222185        // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
    223         if(Net_UserAgent_Mobile::isMobile() === true) { 
     186        if (SC_Display::detectDevice() === DEVICE_TYPE_MOBILE) { 
    224187            $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 
    225188        } 
     
    235198    } 
    236199 
    237     /* パラメータ情報の初期化 */ 
    238     function lfInitParam() { 
    239         $this->objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    240         $this->objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    241         $this->objFormParam->addParam("お名前(フリガナ・姓)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    242         $this->objFormParam->addParam("お名前(フリガナ・名)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    243         $this->objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    244         $this->objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    245         $this->objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    246         $this->objFormParam->addParam("住所1", "order_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    247         $this->objFormParam->addParam("住所2", "order_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    248         $this->objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    249         $this->objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    250         $this->objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    251         $this->objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    252         $this->objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    253         $this->objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    254         $this->objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 
    255         $this->objFormParam->addParam("メールアドレス(確認)", "order_email02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 
    256         $this->objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    257         $this->objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    258         $this->objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    259         $this->objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    260         $this->objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    261         $this->objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    262         $this->objFormParam->addParam("お名前(姓)", "shipping_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    263         $this->objFormParam->addParam("お名前(名)", "shipping_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    264         $this->objFormParam->addParam("お名前(フリガナ・姓)", "shipping_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    265         $this->objFormParam->addParam("お名前(フリガナ・名)", "shipping_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    266         $this->objFormParam->addParam("郵便番号1", "shipping_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    267         $this->objFormParam->addParam("郵便番号2", "shipping_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    268         $this->objFormParam->addParam("都道府県", "shipping_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    269         $this->objFormParam->addParam("住所1", "shipping_addr01", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    270         $this->objFormParam->addParam("住所2", "shipping_addr02", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    271         $this->objFormParam->addParam("電話番号1", "shipping_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    272         $this->objFormParam->addParam("電話番号2", "shipping_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    273         $this->objFormParam->addParam("電話番号3", "shipping_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    274         $this->objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 
    275     } 
    276  
    277     /* DBへデータの登録 */ 
    278     function lfRegistData($uniqid, &$objPurchase, &$objCustomer, $productTypeId, $isMultiple = false) { 
    279         $params = $this->objFormParam->getHashArray(); 
    280         $sqlval = $this->objFormParam->getDbArray(); 
     200    /** 
     201     * パラメータ情報の初期化を行う. 
     202     * 
     203     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     204     * @return void 
     205     */ 
     206    function lfInitParam(&$objFormParam) { 
     207        $objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     208        $objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     209        $objFormParam->addParam("お名前(フリガナ・姓)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     210        $objFormParam->addParam("お名前(フリガナ・名)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     211        $objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
     212        $objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
     213        $objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     214        $objFormParam->addParam("住所1", "order_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     215        $objFormParam->addParam("住所2", "order_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     216        $objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     217        $objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     218        $objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     219        $objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     220        $objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     221        $objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     222        $objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 
     223        $objFormParam->addParam("メールアドレス(確認)", "order_email02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 
     224        $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     225        $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     226        $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     227        $objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
     228        $objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     229        $objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     230        $objFormParam->addParam("お名前(姓)", "shipping_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     231        $objFormParam->addParam("お名前(名)", "shipping_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     232        $objFormParam->addParam("お名前(フリガナ・姓)", "shipping_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     233        $objFormParam->addParam("お名前(フリガナ・名)", "shipping_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     234        $objFormParam->addParam("郵便番号1", "shipping_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
     235        $objFormParam->addParam("郵便番号2", "shipping_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
     236        $objFormParam->addParam("都道府県", "shipping_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     237        $objFormParam->addParam("住所1", "shipping_addr01", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     238        $objFormParam->addParam("住所2", "shipping_addr02", MTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     239        $objFormParam->addParam("電話番号1", "shipping_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     240        $objFormParam->addParam("電話番号2", "shipping_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     241        $objFormParam->addParam("電話番号3", "shipping_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
     242        $objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 
     243    } 
     244 
     245    /** 
     246     * ログイン済みの場合の遷移先を取得する. 
     247     * 
     248     * 商品種別IDが, ダウンロード商品の場合は, 会員情報を受注一時情報に保存し, 
     249     * 支払方法選択画面のパスを返す. 
     250     * それ以外は, お届け先選択画面のパスを返す. 
     251     * 
     252     * @param integer $product_type_id 商品種別ID 
     253     * @return string 遷移先のパス 
     254     */ 
     255    function getNextLocation($product_type_id, $uniqid, &$objCustomer) { 
     256        switch ($product_type_id) { 
     257        case PRODUCT_TYPE_DOWNLOAD: 
     258            $objPurchase->saveOrderTemp($uniqid, array(), $objCustomer); 
     259            $objSiteSess->setRegistFlag(); 
     260            return 'payment.php'; 
     261            break; 
     262 
     263        case PRODUCT_TYPE_NORMAL: 
     264        default: 
     265            return 'deliv.php'; 
     266        } 
     267    } 
     268 
     269    /** 
     270     * データの一時登録を行う. 
     271     * 
     272     * @param integer $uniqid 受注一時テーブルのユニークID 
     273     * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 
     274     * @param SC_Customer $objCustomer SC_Customer インスタンス 
     275     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     276     * @param boolean $isMultiple 複数配送の場合 true 
     277     */ 
     278    function lfRegistData($uniqid, &$objPurchase, &$objCustomer, &$objFormParam, 
     279                          $isMultiple = false) { 
     280        $arrParams = $objFormParam->getHashArray(); 
     281        $arrValues = $objFormParam->getDbArray(); 
    281282        // 登録データの作成 
    282         $sqlval['order_birth'] = SC_Utils_Ex::sfGetTimestamp($params['year'], $params['month'], $params['day']); 
    283         $sqlval['update_date'] = 'Now()'; 
    284         $sqlval['customer_id'] = '0'; 
     283        $arrValues['order_birth'] = SC_Utils_Ex::sfGetTimestamp($arrParams['year'], $arrParams['month'], $arrParams['day']); 
     284        $arrValues['update_date'] = 'Now()'; 
     285        $arrValues['customer_id'] = '0'; 
    285286 
    286287        // お届け先を指定しない場合、 
    287         if ($params['deliv_check'] != '1') { 
     288        if ($arrParams['deliv_check'] != '1') { 
    288289            // order_* を shipping_* へコピー 
    289             $objPurchase->copyFromOrder($sqlval, $params); 
    290         } 
    291  
    292         $arrDeliv = $objPurchase->getDeliv($productTypeId); 
    293         $order_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 
    294         $shipping_val = array('deliv_id' => $arrDeliv[0]['deliv_id']); 
     290            $objPurchase->copyFromOrder($arrValues, $arrParams); 
     291        } 
    295292 
    296293        /* 
     
    298295         * に, shipping_* というキーで保存 
    299296         */ 
    300         foreach ($sqlval as $key => $val) { 
     297        foreach ($arrValues as $key => $val) { 
    301298            if (preg_match('/^order_/', $key)) { 
    302                 $order_val['shipping_' . str_replace('order_', '', $key)] = $val; 
     299                $arrOrder['shipping_' . str_replace('order_', '', $key)] = $val; 
    303300            } elseif (preg_match('/^shipping_/', $key)) { 
    304                 $shipping_val[$key] = $val; 
     301                $arrShipping[$key] = $val; 
    305302            } 
    306303        } 
    307304 
    308305        if ($isMultiple) { 
    309             $objPurchase->saveShippingTemp($order_val, 0); 
    310             if ($params['deliv_check'] == '1') { 
    311                 $objPurchase->saveShippingTemp($shipping_val, 1); 
     306            $objPurchase->saveShippingTemp($arrOrder, 0); 
     307            if ($arrParams['deliv_check'] == '1') { 
     308                $objPurchase->saveShippingTemp($arrShipping, 1); 
    312309            } 
    313310        } else { 
    314             if ($params['deliv_check'] == '1') { 
    315                 $objPurchase->saveShippingTemp($shipping_val, 0); 
     311            if ($arrParams['deliv_check'] == '1') { 
     312                $objPurchase->saveShippingTemp($arrShipping, 0); 
    316313            } else { 
    317                 $objPurchase->saveShippingTemp($order_val, 0); 
    318             } 
    319         } 
    320         $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
    321     } 
    322  
    323     /* 入力内容のチェック */ 
    324     function lfCheckError() { 
     314                $objPurchase->saveShippingTemp($arrOrder, 0); 
     315            } 
     316        } 
     317        $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); 
     318    } 
     319 
     320    /** 
     321     * 入力内容のチェックを行う. 
     322     * 
     323     * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する. 
     324     * 
     325     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     326     * @return array エラー情報の配 
     327     */ 
     328    function lfCheckError($objFormParam) { 
    325329        // 入力値の変換 
    326         $this->objFormParam->convParam(); 
    327         $this->objFormParam->toLower('order_mail'); 
    328         $this->objFormParam->toLower('order_mail_check'); 
    329  
    330         // 入力データを渡す。 
    331         $arrRet = $this->objFormParam->getHashArray(); 
    332         $objErr = new SC_CheckError($arrRet); 
    333         $objErr->arrErr = $this->objFormParam->checkError(); 
     330        $objFormParam->convParam(); 
     331        $objFormParam->toLower('order_mail'); 
     332        $objFormParam->toLower('order_mail_check'); 
     333 
     334        $arrParams = $objFormParam->getHashArray(); 
     335        $objErr = new SC_CheckError($arrParams); 
     336        $objErr->arrErr = $objFormParam->checkError(); 
    334337 
    335338        // 別のお届け先チェック 
    336         if(isset($_POST['deliv_check']) && $_POST['deliv_check'] == "1") { 
     339        if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == "1") { 
    337340            $objErr->doFunc(array("お名前(姓)", "shipping_name01"), array("EXIST_CHECK")); 
    338341            $objErr->doFunc(array("お名前(名)", "shipping_name02"), array("EXIST_CHECK")); 
     
    360363        return $objErr->arrErr; 
    361364    } 
     365 
     366    /** 
     367     * 入力済みの購入情報をフォームに設定する. 
     368     * 
     369     * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し, 
     370     * フォームに設定する. 
     371     * 
     372     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     373     * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 
     374     * @param integer $uniqid 購入一時情報のユニークID 
     375     * @return void 
     376     */ 
     377    function setFormParams(&$objFormParam, &$objPurchase, $uniqid) { 
     378          $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
     379          if (SC_Utils_Ex::isBlank($arrOrderTemp)) { 
     380              $arrOrderTemp = array('order_email' => "", 
     381                                    'order_birth' => ""); 
     382          } 
     383          $arrShippingTemp = $objPurchase->getShippingTemp(); 
     384 
     385          $objFormParam->setParam($arrOrderTemp); 
     386          /* 
     387           * count($arrShippingTemp) > 1 は複数配送であり, 
     388           * $arrShippingTemp[0] は注文者が格納されている 
     389           */ 
     390          if (count($arrShippingTemp) > 1) { 
     391              $objFormParam->setParam($arrShippingTemp[1]); 
     392          } else { 
     393              $objFormParam->setParam($arrShippingTemp[0]); 
     394          } 
     395          $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 
     396          $objFormParam->setDBDate($arrOrderTemp['order_birth']); 
     397    } 
    362398} 
    363399?> 
Note: See TracChangeset for help on using the changeset viewer.