Ignore:
Timestamp:
2011/01/12 18:24:50 (13 years ago)
Author:
kotani
Message:

#880(mobile/sphoneディレクトリを削除)に対応。まずmobileのみ意図通りの動作になるように一部コミット(shopping/お届け先の指定ページ)

Location:
branches/version-2_5-dev/data
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/deliv.tpl

    r19835 r19891  
    3535<input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->"> 
    3636<input type="hidden" name="deli" value="<!--{$smarty.section.cnt.iteration}-->"> 
     37<input type="hidden" name="mode" value="customer_addr"> 
    3738<!--{if $smarty.section.cnt.first}--> 
    38 <input type="hidden" name="mode" value="customer_addr"> 
    3939<input type="hidden" name="other_deliv_id" value=""> 
     40<input type="hidden" name="deliv_check" value="-1"> 
    4041<!--{else}--> 
    41 <input type="hidden" name="mode" value="other_addr"> 
    4242<input type="hidden" name="other_deliv_id" value="<!--{$arrAddr[cnt].other_deliv_id}-->"> 
     43<input type="hidden" name="deliv_check" value="<!--{$arrAddr[cnt].other_deliv_id}-->"> 
    4344<!--{/if}--> 
    4445■お届け先<!--{$smarty.section.cnt.iteration}--><br> 
     
    4849<!--{$arrAddr[cnt].addr02|h}--><br> 
    4950<!--{/if}--> 
     51<!--{$arrAddr[cnt].name01}--> <!--{$arrAddr[cnt].name02}--><br> 
    5052<center><input type="submit" value="ここに送る"></center> 
    5153</form> 
     
    5456<br> 
    5557 
    56 ■その他のお届け先を指定<br> 
    57 <form method="get" action="deliv_addr.php"> 
     58■新しいお届け先を追加する<br> 
     59<form method="post" action="<!--{$smarty.const.URL_PATH}-->mypage/delivery_addr.php"> 
     60<input type="hidden" name="ParentPage" value="<!--{$smarty.const.DELIV_URL_PATH}-->"> 
    5861<center><input type="submit" value="新規登録"></center> 
    5962</form> 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php

    r19872 r19891  
    149149                        $this->lfRegistDataNonMember($_POST, $arrRegistColumn); 
    150150                    } 
     151 
     152                    if(Net_UserAgent_Mobile::isMobile() === true) { 
     153                        // モバイルの場合、元のページに遷移 
     154                        SC_Response_Ex::sendRedirect($this->getLocation($_POST['ParentPage'])); 
     155                        exit; 
     156                    } 
    151157                } 
    152158                break; 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r19868 r19891  
    3030 * @package Page 
    3131 * @author LOCKON CO.,LTD. 
    32  * @version $Id:LC_Page_Shopping_Deliv.php 15532 2007-08-31 14:39:46Z nanasess $ 
     32 * @version $Id$ 
    3333 */ 
    3434class LC_Page_Shopping_Deliv extends LC_Page { 
     
    7474     */ 
    7575    function action() { 
    76         $objView = new SC_SiteView(); 
    7776        $objSiteSess = new SC_SiteSession(); 
    7877        $objCartSess = new SC_CartSession(); 
    7978        $objCustomer = new SC_Customer(); 
    80         $objDb = new SC_Helper_DB_Ex(); 
    8179        $objPurchase = new SC_Helper_Purchase_Ex(); 
    8280        $objQuery = SC_Query::getSingletonInstance();; 
     
    108106 
    109107        // ログインチェック 
    110         if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) { 
     108        if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) { 
    111109            // 不正アクセスとみなす 
    112110            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
     
    129127            } 
    130128            // ログイン判定 
    131             if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { 
     129            $loginFailFlag = false; 
     130            if(Net_UserAgent_Mobile::isMobile() === true) { 
     131                // モバイルサイト 
     132                if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) && 
     133                   !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { 
     134                    $loginFailFlag = true; 
     135                } 
     136            } else { 
     137                // モバイルサイト以外 
     138                if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { 
     139                    $loginFailFlag = true; 
     140                } 
     141            } 
     142            if($loginFailFlag === true) { 
    132143                // 仮登録の判定 
    133  
    134144                $where = "email = ? AND status = 1 AND del_flg = 0"; 
    135145                $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); 
     
    141151                } 
    142152            } 
     153 
     154            if(Net_UserAgent_Mobile::isMobile() === true) { 
     155                // ログインが成功した場合は携帯端末IDを保存する。 
     156                $objCustomer->updateMobilePhoneId(); 
     157 
     158                /* 
     159                 * 携帯メールアドレスが登録されていない場合は, 
     160                 * 携帯メールアドレス登録画面へ遷移 
     161                 */ 
     162                $objMobile = new SC_Helper_Mobile_Ex(); 
     163                if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
     164                    if (!$objCustomer->hasValue('email_mobile')) { 
     165                        SC_Response_Ex::sendRedirect('../entry/email_mobile.php'); 
     166                        exit; 
     167                    } 
     168                } 
     169            } 
     170 
    143171            //ダウンロード商品判定 
    144172            if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){ 
     
    189217                    $otherDeliv = $objQuery->select("*", "dtb_other_deliv", 
    190218                                                    "other_deliv_id = ?", 
    191                                                     array($other_deliv_id)); 
     219                                                    array($_POST['deliv_check'])); 
    192220                    $sqlval = $otherDeliv[0]; 
    193221                    $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey); 
    194                     $objPurchase->saveShippingTemp($sqlval, $other_deliv_id); 
     222                    $objPurchase->saveShippingTemp($sqlval, $_POST['deliv_check']); 
    195223                    $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
    196224 
     
    228256        // 登録済み住所を取得 
    229257        $this->arrAddr = $objCustomer->getCustomerAddress($_SESSION['customer']['customer_id']); 
    230         // 入力値の取得 
    231         if (!isset($arrErr)) $arrErr = array(); 
    232         $this->arrForm = $this->objFormParam->getFormParamList(); 
    233         $this->arrErr = $arrErr; 
    234     } 
    235  
    236     /** 
    237      * モバイルページを初期化する. 
    238      * 
    239      * @return void 
    240      */ 
    241     function mobileInit() { 
    242         $this->init(); 
    243     } 
    244  
    245     /** 
    246      * Page のプロセス(モバイル). 
    247      * 
    248      * @return void 
    249      */ 
    250     function mobileProcess() { 
    251         $this->mobileAction(); 
    252         $this->sendResponse(); 
    253     } 
    254  
    255     /** 
    256      * Page のプロセス(モバイル). 
    257      * 
    258      * @return void 
    259      */ 
    260     function mobileAction() { 
    261         $objView = new SC_MobileView(); 
    262         $objSiteSess = new SC_SiteSession(); 
    263         $objCartSess = new SC_CartSession(); 
    264         $objCustomer = new SC_Customer(); 
    265         $objDb = new SC_Helper_DB_Ex(); 
    266         // クッキー管理クラス 
    267         $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
    268         // パラメータ管理クラス 
    269         $this->objFormParam = new SC_FormParam(); 
    270         // パラメータ情報の初期化 
    271         $this->lfInitParam(); 
    272         // POST値の取得 
    273         $this->lfConvertEmail($_POST["login_email"]); 
    274         $this->lfConvertLoginPass($_POST["login_pass"]); 
    275  
    276         $this->objFormParam->setParam($_POST); 
    277  
    278         $this->objLoginFormParam = new SC_FormParam();  // ログインフォーム用 
    279         $this->lfInitLoginFormParam();                      // 初期設定 
    280         $this->objLoginFormParam->setParam($_POST);     // POST値の取得 
    281  
    282         // ユーザユニークIDの取得と購入状態の正当性をチェック 
    283         $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
    284         $this->tpl_uniqid = $uniqid; 
    285  
    286         //ダウンロード商品判定 
    287         $this->cartdown = $objDb->chkCartDown($objCartSess); 
    288  
    289         if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    290  
    291         // ログインチェック 
    292         if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) { 
    293             // 不正アクセスとみなす 
    294             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    295         } 
    296  
    297         switch($_POST['mode']) { 
    298         case 'login': 
    299             $this->objLoginFormParam->toLower('login_email'); 
    300             $this->arrErr = $this->objLoginFormParam->checkError(); 
    301             $arrForm =  $this->objLoginFormParam->getHashArray(); 
    302             // クッキー保存判定 
    303             if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { 
    304                 $objCookie->setCookie('login_email', $_POST['login_email']); 
    305             } else { 
    306                 $objCookie->setCookie('login_email', ''); 
    307             } 
    308  
    309             if(count($this->arrErr) == 0) { 
    310                 // ログイン判定 
    311                 if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) && 
    312                    !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { 
    313                     // 仮登録の判定 
    314                     $objQuery = new SC_Query; 
    315                     $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0"; 
    316                     $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email'])); 
    317  
    318                     if($ret > 0) { 
    319                         SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    320                     } else { 
    321                         SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    322                     } 
    323                 } 
    324                 //ダウンロード商品判定 
    325                 if($this->cartdown==2){ 
    326                     // 会員情報の住所を受注一時テーブルに書き込む 
    327                     $objDb->sfRegistDelivData($uniqid, $objCustomer); 
    328                     // 正常に登録されたことを記録しておく 
    329                     $objSiteSess->setRegistFlag(); 
    330                     // ダウンロード商品有りの場合は、支払方法画面に転送 
    331                     $this->objDisplay->redirect($this->getLocation(MOBILE_SHOPPING_PAYMENT_URL_PATH), array()); 
    332                     exit; 
    333                 } 
    334             } else { 
    335                 // ログインページに戻る 
    336                 $this->objDisplay->redirect($this->getLocation(MOBILE_SHOPPING_URL)); 
    337                 exit; 
    338             } 
    339  
    340             // ログインが成功した場合は携帯端末IDを保存する。 
    341             $objCustomer->updateMobilePhoneId(); 
    342  
    343             /* 
    344              * 携帯メールアドレスが登録されていない場合は, 
    345              * 携帯メールアドレス登録画面へ遷移 
    346              */ 
    347             $objMobile = new SC_Helper_Mobile_Ex(); 
    348             if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
    349                 if (!$objCustomer->hasValue('email_mobile')) { 
    350                     $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php")); 
    351                     exit; 
    352                 } 
    353             } 
    354             break; 
    355             // 削除 
    356         case 'delete': 
    357             if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { 
    358                 $objQuery = new SC_Query(); 
    359                 $where = "other_deliv_id = ?"; 
    360                 $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id'])); 
    361                 $this->objFormParam->setValue('select_addr_id', ''); 
    362             } 
    363             break; 
    364             // 会員登録住所に送る 
    365         case 'customer_addr': 
    366             // お届け先がチェックされている場合には更新処理を行う 
    367             if ($_POST['deli'] != "") { 
    368                 // 会員情報の住所を受注一時テーブルに書き込む 
    369                 $this->lfRegistDelivData($uniqid, $objCustomer); 
    370                 // 正常に登録されたことを記録しておく 
    371                 $objSiteSess->setRegistFlag(); 
    372                 // お支払い方法選択ページへ移動 
    373                 $this->objDisplay->redirect($this->getLocation(MOBILE_SHOPPING_PAYMENT_URL_PATH)); 
    374                 exit; 
    375             }else{ 
    376                 // エラーを返す 
    377                 $arrErr['deli'] = '※ お届け先を選択してください。'; 
    378             } 
    379             break; 
    380  
    381             // 登録済みの別のお届け先に送る 
    382         case 'other_addr': 
    383             // お届け先がチェックされている場合には更新処理を行う 
    384             if ($_POST['deli'] != "") { 
    385                 if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { 
    386                     $objQuery = new SC_Query(); 
    387                     $deliv_count = $objQuery->count("dtb_other_deliv","customer_id=? and other_deliv_id = ?" ,array($objCustomer->getValue('customer_id'), $_POST['other_deliv_id'])); 
    388                     if ($deliv_count != 1) { 
    389                         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    390                     } 
    391                     // 登録済みの別のお届け先を受注一時テーブルに書き込む 
    392                     $this->lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']); 
    393                     // 正常に登録されたことを記録しておく 
    394                     $objSiteSess->setRegistFlag(); 
    395                     // お支払い方法選択ページへ移動 
    396                     $this->objDisplay->redirect($this->getLocation(MOBILE_SHOPPING_PAYMENT_URL_PATH)); 
    397                     exit; 
    398                 } 
    399             }else{ 
    400                 // エラーを返す 
    401                 $arrErr['deli'] = '※ お届け先を選択してください。'; 
    402             } 
    403             break; 
    404  
    405             // 前のページに戻る 
    406         case 'return': 
    407             // 確認ページへ移動 
    408             $this->objDisplay->redirect($this->getLocation(MOBILE_CART_URL_PATH)); 
    409             exit; 
    410             break; 
    411         default: 
    412             $objQuery = new SC_Query(); 
    413             $where = "order_temp_id = ?"; 
    414             $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 
    415             $this->objFormParam->setParam($arrRet[0]); 
    416             break; 
    417         } 
    418  
    419         /** 表示処理 **/ 
    420  
    421         // 会員登録住所の取得 
    422         $col = "name01, name02, pref, addr01, addr02, zip01, zip02"; 
    423         $where = "customer_id = ?"; 
    424         $objQuery = new SC_Query(); 
    425         $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($_SESSION['customer']['customer_id'])); 
    426         // 別のお届け先住所の取得 
    427         $col = "other_deliv_id, name01, name02, pref, addr01, addr02, zip01, zip02"; 
    428         $objQuery->setOrder("other_deliv_id DESC"); 
    429         $objOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($_SESSION['customer']['customer_id'])); 
    430         $this->arrAddr = $arrCustomerAddr; 
    431         $cnt = 1; 
    432         foreach($objOtherAddr as $val) { 
    433             $this->arrAddr[$cnt] = $val; 
    434             $cnt++; 
    435         } 
    436  
    437258        // 入力値の取得 
    438259        if (!isset($arrErr)) $arrErr = array(); 
Note: See TracChangeset for help on using the changeset viewer.