Ignore:
Timestamp:
2011/02/04 16:26:14 (13 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20090
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/Smarty/templates/default/shopping/index.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fshopping%2Findex.tpl
data/Smarty/templates/mobile/shopping/index.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fmobile%2Fshopping%2Findex.tpl
data/Smarty/templates/sphone/shopping/index.tpl index.tpl-20101209134550-lsv02w9wikfx9cj3-38
data/class/SC_FormParam.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_FormParam.php
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
data/class/pages/shopping/LC_Page_Shopping_Deliv.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Deliv.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110204072610-34311c7r99r01a7g
bzr:revno:
2819
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/Smarty/templates/default/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/Smarty/templates/mobile/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/Smarty/templates/sphone/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/class/SC_FormParam.php ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/class/pages/shopping/LC_Page_Shopping_Deliv.php ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
bzr:timestamp:
2011-02-04 16:26:10.503999949 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-04T07:26:10.504000Z
Message:

#984([フロント]商品購入 リファクタリング)
#783(ページ間の遷移方法の改善)

  • /shopping/index.php のログイン処理を修正
File:
1 edited

Legend:

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

    r20069 r20091  
    3333 */ 
    3434class LC_Page_Shopping_Deliv extends LC_Page { 
    35  
    36     // {{{ properties 
    37  
    38     /** フォームパラメータの配列 */ 
    39     var $objFormParam; 
    40  
    41     /** ログインフォームパラメータ配列 */ 
    42     var $objLoginFormParam; 
    4335 
    4436    // }}} 
     
    7971        $objPurchase = new SC_Helper_Purchase_Ex(); 
    8072        $objQuery = SC_Query::getSingletonInstance();; 
    81         // クッキー管理クラス 
    8273        $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
    83         // パラメータ管理クラス 
    84         $this->objFormParam = new SC_FormParam(); 
    85         // パラメータ情報の初期化 
    86         $this->lfInitParam(); 
    87         // POST値の取得 
    88         $this->objFormParam->setParam($_POST); 
    89  
    90         $this->objLoginFormParam = new SC_FormParam();  // ログインフォーム用 
    91         $this->lfInitLoginFormParam(); 
    92         //パスワード・Eメールにある空白をトリム 
    93         $this->lfConvertEmail($_POST["login_email"]); 
    94         $this->lfConvertLoginPass($_POST["login_pass"]); 
    95         $this->objLoginFormParam->setParam($_POST);     // POST値の取得 
    96  
    97         // ユーザユニークIDの取得と購入状態の正当性をチェック 
    98         $uniqid = $objSiteSess->getUniqId(); 
    99         $objPurchase->verifyChangeCart($uniqid, $objCartSess); 
    100  
    101         $this->tpl_uniqid = $uniqid; 
     74        $this->tpl_uniqid = $objSiteSess->getUniqId(); 
     75        $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess); 
    10276 
    10377        $this->cartKey = $objCartSess->getKey(); 
    10478 
    105         // ログインチェック TODO 要リファクタリング(MODE if利用) 
    106         if($this->getMode() != 'login' && !$objCustomer->isLoginSuccess(true)) { 
    107             // 不正アクセスとみなす 
     79        // ログインチェック 
     80        if(!$objCustomer->isLoginSuccess(true)) { 
    10881            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    10982        } 
    11083 
     84        if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){ 
     85            // 会員情報の住所を受注一時テーブルに書き込む 
     86            $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
     87            $objPurchase->saveShippingTemp($sqlval); 
     88            $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
     89            // 正常に登録されたことを記録しておく 
     90            $objSiteSess->setRegistFlag(); 
     91            // ダウンロード商品有りの場合は、支払方法画面に転送 
     92            SC_Response_Ex::sendRedirect('payment.php'); 
     93            exit; 
     94        } 
     95 
    11196        switch($this->getMode()) { 
    112         case 'login': 
    113             $this->objLoginFormParam->toLower('login_email'); 
    114             $this->arrErr = $this->objLoginFormParam->checkError(); 
    115             $arrForm =  $this->objLoginFormParam->getHashArray(); 
    116             // クッキー保存判定 
    117             if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { 
    118                 $objCookie->setCookie('login_email', $_POST['login_email']); 
    119             } else { 
    120                 $objCookie->setCookie('login_email', ''); 
    121             } 
    122  
    123             if(count($this->arrErr) > 0) { 
    124                 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    125             } 
    126             // ログイン判定 
    127             $loginFailFlag = false; 
    128             if(Net_UserAgent_Mobile::isMobile() === true) { 
    129                 // モバイルサイト 
    130                 if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) && 
    131                    !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { 
    132                     $loginFailFlag = true; 
    133                 } 
    134             } else { 
    135                 // モバイルサイト以外 
    136                 if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { 
    137                     $loginFailFlag = true; 
    138                 } 
    139             } 
    140             if($loginFailFlag === true) { 
    141                 // 仮登録の判定 
    142                 $where = "email = ? AND status = 1 AND del_flg = 0"; 
    143                 $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); 
    144  
    145                 if($ret > 0) { 
    146                     SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    147                 } else { 
    148                     SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    149                 } 
    150             } 
    151  
    152             if(Net_UserAgent_Mobile::isMobile() === true) { 
    153                 // ログインが成功した場合は携帯端末IDを保存する。 
    154                 $objCustomer->updateMobilePhoneId(); 
    155  
    156                 /* 
    157                  * 携帯メールアドレスが登録されていない場合は, 
    158                  * 携帯メールアドレス登録画面へ遷移 
    159                  */ 
    160                 $objMobile = new SC_Helper_Mobile_Ex(); 
    161                 if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
    162                     if (!$objCustomer->hasValue('email_mobile')) { 
    163                         SC_Response_Ex::sendRedirect('../entry/email_mobile.php'); 
    164                         exit; 
    165                     } 
    166                 } 
    167             } 
    168  
    169             //ダウンロード商品判定 
    170             if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){ 
    171                 // 会員情報の住所を受注一時テーブルに書き込む 
    172                 $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
    173                 // FIXME ダウンロード商品の場合は配送無し 
    174                 $arrDeliv = $objPurchase->getDeliv($this->cartKey); 
    175                 $sqlval['deliv_id'] = $arrDeliv[0]['deliv_id']; 
    176                 $objPurchase->saveShippingTemp($sqlval); 
    177                 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
    178                 // 正常に登録されたことを記録しておく 
    179                 $objSiteSess->setRegistFlag(); 
    180                 // ダウンロード商品有りの場合は、支払方法画面に転送 
    181                 SC_Response_Ex::sendRedirect('payment.php'); 
    182                 exit; 
    183             } 
    184             break; 
    18597        // 削除 
    18698        case 'delete': 
     
    188100                $where = "other_deliv_id = ?"; 
    189101                $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id'])); 
    190                 $this->objFormParam->setValue('select_addr_id', ''); 
    191102            } 
    192103            break; 
     
    201112                $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
    202113                $objPurchase->saveShippingTemp($sqlval); 
    203                 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
     114                $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
    204115 
    205116                // 正常に登録されたことを記録しておく 
     
    219130                    $objPurchase->copyFromOrder($sqlval, $otherDeliv, 'shipping', '');; 
    220131                    $objPurchase->saveShippingTemp($sqlval); 
    221                     $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
     132                    $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
    222133 
    223134                    // 正常に登録されたことを記録しておく 
     
    246157        default: 
    247158            $objPurchase->unsetShippingTemp(); 
    248             $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
    249             if (empty($arrOrderTemp)) $arrOrderTemp = array(""); 
    250             $this->objFormParam->setParam($arrOrderTemp); 
     159 
    251160            break; 
    252161        } 
     
    256165        // 入力値の取得 
    257166        if (!isset($arrErr)) $arrErr = array(); 
    258         $this->arrForm = $this->objFormParam->getFormParamList(); 
    259167        $this->arrErr = $arrErr; 
    260168    } 
     
    268176        parent::destroy(); 
    269177    } 
    270  
    271     /* パラメータ情報の初期化 */ 
    272     function lfInitParam() { 
    273         $this->objFormParam->addParam("お名前1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    274         $this->objFormParam->addParam("お名前2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    275         $this->objFormParam->addParam("お名前(フリガナ・姓)", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    276         $this->objFormParam->addParam("お名前(フリガナ・名)", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    277         $this->objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    278         $this->objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    279         $this->objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    280         $this->objFormParam->addParam("住所1", "deliv_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    281         $this->objFormParam->addParam("住所2", "deliv_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    282         $this->objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    283         $this->objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    284         $this->objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    285         $this->objFormParam->addParam("", "deliv_check"); 
    286     } 
    287  
    288     function lfInitLoginFormParam() { 
    289         $this->objLoginFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    290         $this->objLoginFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    291         $this->objLoginFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN1, "", array("EXIST_CHECK")); 
    292         $this->objLoginFormParam->addParam("パスワード", "login_pass1", PASSWORD_LEN1, "", array("EXIST_CHECK", "MIN_LENGTH_CHECK")); 
    293         $this->objLoginFormParam->addParam("パスワード", "login_pass2", PASSWORD_LEN2, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    294     } 
    295  
    296     /* DBへデータの登録 */ 
    297     function lfRegistNewAddrData($uniqid, $objCustomer) { 
    298         $sqlval = $this->objFormParam->getDbArray(); 
    299         // 登録データの作成 
    300         $sqlval['deliv_check'] = '1'; 
    301         $sqlval['order_temp_id'] = $uniqid; 
    302         $sqlval['update_date'] = 'Now()'; 
    303         $sqlval['customer_id'] = $objCustomer->getValue('customer_id'); 
    304         $sqlval['order_birth'] = $objCustomer->getValue('birth'); 
    305  
    306         $objDb = new SC_Helper_DB_Ex(); 
    307         $objDb->sfRegistTempOrder($uniqid, $sqlval); 
    308     } 
    309  
    310     /* 入力内容のチェック */ 
    311     function lfCheckError() { 
    312         // 入力データを渡す。 
    313         $arrRet =  $this->objFormParam->getHashArray(); 
    314         $objErr = new SC_CheckError($arrRet); 
    315         $objErr->arrErr = $this->objFormParam->checkError(); 
    316         // 複数項目チェック TODO 要リファクタリング(MODE if利用) 
    317         if ($this->getMode() == 'login'){ 
    318             $objErr->doFunc(array("メールアドレス", "login_email", STEXT_LEN), array("EXIST_CHECK")); 
    319             $objErr->doFunc(array("パスワード", "login_pass", STEXT_LEN), array("EXIST_CHECK")); 
    320         } 
    321         $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03"), array("TEL_CHECK")); 
    322         return $objErr->arrErr; 
    323     } 
    324  
    325     /** 
    326      * 入力されたEmailから余分な改行・空白を削除する 
    327      * 
    328      * @param string $_POST["login_email"] 
    329      */ 
    330     function lfConvertEmail(){ 
    331         if( strlen($_POST["login_email"]) < 1 ){ return ; } 
    332         $_POST["login_email"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["login_email"]); 
    333     } 
    334  
    335     /** 
    336      * 入力されたPassから余分な空白を削除し、最小桁数・最大桁数チェック用に変数に入れる 
    337      * 
    338      * @param string $_POST["login_pass"] 
    339      */ 
    340     function lfConvertLoginPass(){ 
    341     if( strlen($_POST["login_pass"]) < 1 ){ return ; } 
    342         $_POST["login_pass"] = trim($_POST["login_pass"]); //認証用 
    343         $_POST["login_pass1"] = $_POST["login_pass"];      //最小桁数比較用 
    344         $_POST["login_pass2"] = $_POST["login_pass"];      //最大桁数比較用 
    345     } 
    346178} 
    347179?> 
Note: See TracChangeset for help on using the changeset viewer.