Ignore:
Timestamp:
2007/10/12 10:51:27 (19 years ago)
Author:
nanasess
Message:
  • デグレ修正
  • リファクタリング
Location:
branches/feature-module-update/data/class/pages
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/cart/LC_Page_Cart.php

    r16362 r16386  
    219219                // 購入ページへ 
    220220                $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
    221  
    222221                exit; 
    223222            } 
     
    257256 
    258257        // ログイン判定 
    259         if($objCustomer->isLoginSuccess()) { 
     258        if($objCustomer->isLoginSuccess(true)) { 
    260259            $this->tpl_login = true; 
    261260            $this->tpl_user_point = $objCustomer->getValue('point'); 
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping.php

    r16186 r16386  
    201201 
    202202        // ログインチェック 
    203         if($objCustomer->isLoginSuccess()) { 
     203        if($objCustomer->isLoginSuccess(true)) { 
    204204            // すでにログインされている場合は、お届け先設定画面に転送 
    205             $this->sendRedirect($this->getLocation($helperMobile->gfAddSessionId('./deliv.php'))); 
     205            $this->sendRedirect($this->getLocation('./deliv.php'), true); 
    206206            exit; 
    207207        } 
     
    209209        // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
    210210        $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 
     211 
     212        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    211213 
    212214        switch($_POST['mode']) { 
     
    226228                // DBへのデータ登録 
    227229                $this->lfRegistData($uniqid); 
     230 
     231                // お届け先のコピー 
     232                $this->lfCopyDeliv($uniqid, $_POST); 
     233 
    228234                // 正常に登録されたことを記録しておく 
    229235                $objSiteSess->setRegistFlag(); 
    230236                // お支払い方法選択ページへ移動 
    231                 $this->sendRedirect($this->getLocation(SC_Helper_Mobile_Ex::gfAddSessionId(MOBILE_URL_SHOP_PAYMENT))); 
     237                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); 
    232238                exit; 
    233239            } 
     
    237243        case 'return': 
    238244            // 確認ページへ移動 
    239             $this->sendRedirect($this->getLocation(SC_Helper_Mobile_Ex::gfAddSessionId(MOBILE_URL_CART_TOP))); 
     245            $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true); 
    240246            exit; 
    241247            break; 
     
    252258            $where = "order_temp_id = ?"; 
    253259            $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 
     260 
     261            if (empty($arrRet)) $arrRet = array( 
     262                                                array('order_email' => "", 
     263                                                      'order_birth' => "")); 
     264 
    254265            // DB値の取得 
    255266            $this->objFormParam->setParam($arrRet[0]); 
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Complete.php

    r16322 r16386  
    129129        parent::destroy(); 
    130130    } 
     131 
     132    /** 
     133     * モバイルページを初期化する. 
     134     * 
     135     * @return void 
     136     */ 
     137    function mobileInit() { 
     138        $this->init(); 
     139    } 
     140 
     141    /** 
     142     * Page のプロセス(モバイル). 
     143     * 
     144     * @return void 
     145     */ 
     146    function mobileProcess() { 
     147        $conn = new SC_DBConn(); 
     148        $objView = new SC_MobileView(); 
     149        $this->objSiteSess = new SC_SiteSession(); 
     150        $this->objCartSess = new SC_CartSession(); 
     151        $objSiteInfo = $objView->objSiteInfo; 
     152        $this->arrInfo = $objSiteInfo->data; 
     153        $this->objCustomer = new SC_Customer(); 
     154        $mailHelper = new SC_Helper_Mail_Ex(); 
     155 
     156        // 前のページで正しく登録手続きが行われたか判定 
     157        SC_Utils_Ex::sfIsPrePage($this->objSiteSess, true); 
     158        // ユーザユニークIDの取得と購入状態の正当性をチェック 
     159        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($this->objSiteSess, $this->objCartSess); 
     160        if ($uniqid != "") { 
     161 
     162            // 完了処理 
     163            $objQuery = new SC_Query(); 
     164            $objQuery->begin(); 
     165            $order_id = $this->lfDoComplete($objQuery, $uniqid); 
     166            $objQuery->commit(); 
     167 
     168            // セッションに保管されている情報を更新する 
     169            $this->objCustomer->updateSession(); 
     170 
     171            // 完了メール送信 
     172            if($order_id != "") { 
     173                $mailHelper->sfSendOrderMail($order_id, '1'); 
     174            } 
     175 
     176            //その他情報の取得 
     177 
     178            $other_data = $objQuery->get("dtb_order", "memo02", "order_id = ? ", array($order_id)); 
     179            if($other_data != "") { 
     180                $arrOther = unserialize($other_data); 
     181 
     182                // データを編集 
     183                foreach($arrOther as $key => $val){ 
     184                    // URLの場合にはリンクつきで表示させる 
     185                    if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) { 
     186                        $arrOther[$key]["value"] = "<a href='#' onClick=\"window.open('". $val["value"] . "'); \" >" . $val["value"] ."</a>"; 
     187                    } 
     188                } 
     189 
     190                $this->arrOther = $arrOther; 
     191 
     192            } 
     193 
     194            // アフィリエイト用コンバージョンタグの設定 
     195            $this->tpl_conv_page = AFF_SHOPPING_COMPLETE; 
     196            $this->tpl_aff_option = "order_id=$order_id"; 
     197            //合計価格の取得 
     198            $total = $objQuery->get("dtb_order", "total", "order_id = ? ", array($order_id)); 
     199            if($total != "") { 
     200                $this->tpl_aff_option.= "|total=$total"; 
     201            } 
     202        } 
     203 
     204        $objView->assignobj($this); 
     205        $objView->display(SITE_FRAME); 
     206    } 
     207 
    131208 
    132209    // エビスタグ引渡し用データを生成する 
     
    214291        } 
    215292        // 一時テーブルを受注テーブルに格納する 
    216         $order_id = $this->lfRegistOrder($objQuery, $arrData, $this->objCampaignSess); 
     293        if (defined("MOBILE_SITE")) { 
     294            $order_id = $this->lfRegistOrder($objQuery, $arrData); 
     295        } else { 
     296            $order_id = $this->lfRegistOrder($objQuery, $arrData, $this->objCampaignSess); 
     297        } 
    217298        // カート商品を受注詳細テーブルに格納する 
    218299        $this->lfRegistOrderDetail($objQuery, $order_id, $this->objCartSess); 
     
    220301        $this->lfDeleteTempOrder($objQuery, $uniqid); 
    221302        // キャンペーンからの遷移の場合登録する。 
    222         if($this->objCampaignSess->getIsCampaign() and $this->objCartSess->chkCampaign($this->objCampaignSess->getCampaignId())) { 
    223             $this->lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id); 
     303        if (!defined("MOBILE_SITE")) { 
     304            if($this->objCampaignSess->getIsCampaign() and $this->objCartSess->chkCampaign($this->objCampaignSess->getCampaignId())) { 
     305                $this->lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id); 
     306            } 
    224307        } 
    225308 
     
    321404 
    322405    // 受注テーブルへ登録 
    323     function lfRegistOrder($objQuery, $arrData, $objCampaignSess) { 
     406    function lfRegistOrder($objQuery, $arrData, $objCampaignSess = null) { 
    324407        $sqlval = $arrData; 
    325408 
     
    360443 
    361444        // キャンペーンID 
    362         if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 
     445        if (!defined("MOBILE_SITE")) { 
     446            if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 
     447        } 
    363448 
    364449        // ゲットの値をインサート 
     
    407492                $objQuery->insert("dtb_order_detail", $sqlval); 
    408493            } else { 
    409                 SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND); 
     494                if (defined("MOBILE_SITE")) { 
     495                    SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND, "", false, "", true); 
     496                } else { 
     497                    SC_Utils_Ex::sfDispSiteError(CART_NOT_FOUND); 
     498                } 
    410499            } 
    411500        } 
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Confirm.php

    r16047 r16386  
    149149 
    150150    /** 
     151     * モバイルページを初期化する. 
     152     * 
     153     * @return void 
     154     */ 
     155    function mobileInit() { 
     156        $this->init(); 
     157    } 
     158 
     159    /** 
     160     * Page のプロセス(モバイル). 
     161     * 
     162     * @return void 
     163     */ 
     164    function mobileProcess() { 
     165        $objView = new SC_MobileView(); 
     166        $objCartSess = new SC_CartSession(); 
     167        $objSiteInfo = $objView->objSiteInfo; 
     168        $objSiteSess = new SC_SiteSession(); 
     169        $objCustomer = new SC_Customer(); 
     170        $arrInfo = $objSiteInfo->data; 
     171        $objQuery = new SC_Query(); 
     172        $objDb = new SC_Helper_DB_Ex(); 
     173 
     174        // 前のページで正しく登録手続きが行われた記録があるか判定 
     175        SC_Utils_Ex::sfIsPrePage($objSiteSess, true); 
     176 
     177        // ユーザユニークIDの取得と購入状態の正当性をチェック 
     178        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
     179        $this->tpl_uniqid = $uniqid; 
     180 
     181        // カート集計処理 
     182        $objDb->sfTotalCart($this, $objCartSess, $arrInfo); 
     183        // 一時受注テーブルの読込 
     184        $arrData = $objDb->sfGetOrderTemp($uniqid); 
     185        // カート集計を元に最終計算 
     186        $arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo, $objCustomer); 
     187 
     188        // カート内の商品の売り切れチェック 
     189        $objCartSess->chkSoldOut($objCartSess->getCartList()); 
     190 
     191        // 会員ログインチェック 
     192        if($objCustomer->isLoginSuccess(true)) { 
     193            $this->tpl_login = '1'; 
     194            $this->tpl_user_point = $objCustomer->getValue('point'); 
     195        } 
     196 
     197        // 決済区分を取得する 
     198        $payment_type = ""; 
     199        if($objDb->sfColumnExists("dtb_payment", "memo01")){ 
     200            // MEMO03に値が入っている場合には、モジュール追加されたものとみなす 
     201            $sql = "SELECT memo03 FROM dtb_payment WHERE payment_id = ?"; 
     202            $arrPayment = $objQuery->getall($sql, array($arrData['payment_id'])); 
     203            $payment_type = $arrPayment[0]["memo03"]; 
     204        } 
     205        $this->payment_type = $payment_type; 
     206 
     207        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     208 
     209        switch($_POST['mode']) { 
     210            // 前のページに戻る 
     211        case 'return': 
     212            // 正常な推移であることを記録しておく 
     213            $objSiteSess->setRegistFlag(); 
     214            $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); 
     215            exit; 
     216            break; 
     217        case 'confirm': 
     218            // この時点でオーダーIDを確保しておく(クレジット、コンビニ決済で必要なため) 
     219            // postgresqlとmysqlとで処理を分ける 
     220            if (DB_TYPE == "pgsql") { 
     221                $order_id = $objQuery->nextval("dtb_order","order_id"); 
     222            }elseif (DB_TYPE == "mysql") { 
     223                $order_id = $objQuery->get_auto_increment("dtb_order"); 
     224            } 
     225            $arrData["order_id"] = $order_id; 
     226 
     227            // セッション情報を保持 
     228            $arrData['session'] = serialize($_SESSION); 
     229 
     230            // 集計結果を受注一時テーブルに反映 
     231            $objDb->sfRegistTempOrder($uniqid, $arrData); 
     232            // 正常に登録されたことを記録しておく 
     233            $objSiteSess->setRegistFlag(); 
     234 
     235            // 決済方法により画面切替 
     236            if($payment_type != "") { 
     237                $_SESSION["payment_id"] = $arrData['payment_id']; 
     238                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_MODULE), true); 
     239            }else{ 
     240                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_COMPLETE), true); 
     241            } 
     242            break; 
     243        default: 
     244            break; 
     245        } 
     246        $this->arrData = $arrData; 
     247        $this->arrInfo = $arrInfo; 
     248        $objView->assignobj($this); 
     249        $objView->display(SITE_FRAME); 
     250    } 
     251 
     252    /** 
    151253     * デストラクタ. 
    152254     * 
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r16381 r16386  
    230230        $this->tpl_uniqid = $uniqid; 
    231231 
     232        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     233 
    232234        // ログインチェック 
    233235        if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) { 
     
    275277             * email がモバイルドメインでは無く, 
    276278             * 携帯メールアドレスが登録されていない場合 
     279             * 
     280             * XXX 携帯メールアドレスの登録が無いと,  
     281             *     配送先が空欄になってしまう場合がある 
    277282             */ 
    278283            $objMobile = new SC_Helper_Mobile_Ex(); 
     
    313318            // お届け先がチェックされている場合には更新処理を行う 
    314319            if ($_POST['deli'] != "") { 
    315                 if (sfIsInt($_POST['other_deliv_id'])) { 
     320                if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { 
    316321                    // 登録済みの別のお届け先を受注一時テーブルに書き込む 
    317322                    $this->lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']); 
     
    380385 
    381386        // 入力値の取得 
     387        if (!isset($arrErr)) $arrErr = array(); 
    382388        $this->arrForm = $this->objFormParam->getFormParamList(); 
    383389        $this->arrErr = $arrErr; 
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r16043 r16386  
    8888        $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); 
    8989 
    90         // カー内の商品の売り切れチェック 
     90        // カー内の商品の売り切れチェック 
    9191        $objCartSess->chkSoldOut($objCartSess->getCartList()); 
    9292 
     
    150150        // フレームを選択(キャンペーンページから遷移なら変更) 
    151151        $objCampaignSess->pageView($objView); 
     152    } 
     153 
     154    /** 
     155     * モバイルページを初期化する. 
     156     * 
     157     * @return void 
     158     */ 
     159    function mobileInit() { 
     160        $this->init(); 
     161    } 
     162 
     163    /** 
     164     * Page のプロセス(モバイル). 
     165     * 
     166     * @return void 
     167     */ 
     168    function mobileProcess() { 
     169        $objView = new SC_MobileView(); 
     170        $objSiteSess = new SC_SiteSession(); 
     171        $objCartSess = new SC_CartSession(); 
     172        $this->objCustomer = new SC_Customer(); 
     173        $objDb = new SC_Helper_DB_Ex(); 
     174        $objSiteInfo = $objView->objSiteInfo; 
     175        $arrInfo = $objSiteInfo->data; 
     176 
     177        // パラメータ管理クラス 
     178        $this->objFormParam = new SC_FormParam(); 
     179        // パラメータ情報の初期化 
     180        $this->lfInitParam(); 
     181        // POST値の取得 
     182        $this->objFormParam->setParam($_POST); 
     183 
     184        // ユーザユニークIDの取得と購入状態の正当性をチェック 
     185        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
     186        // ユニークIDを引き継ぐ 
     187        $this->tpl_uniqid = $uniqid; 
     188 
     189        // 会員ログインチェック 
     190        if($this->objCustomer->isLoginSuccess(true)) { 
     191            $this->tpl_login = '1'; 
     192            $this->tpl_user_point = $this->objCustomer->getValue('point'); 
     193        } 
     194 
     195        // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる) 
     196        $objDb->sfTotalCart($this, $objCartSess, $arrInfo); 
     197        if (empty($arrData)) $arrData = array(); 
     198        $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); 
     199 
     200        // カー都内の商品の売り切れチェック 
     201        $objCartSess->chkSoldOut($objCartSess->getCartList(), true); 
     202 
     203        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     204 
     205        // 戻るボタンの処理 
     206        if (!empty($_POST['return'])) { 
     207            switch ($_POST['mode']) { 
     208            case 'confirm': 
     209                $_POST['mode'] = 'payment'; 
     210                break; 
     211            default: 
     212                // 正常な推移であることを記録しておく 
     213                $objSiteSess->setRegistFlag(); 
     214                $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     215                exit; 
     216            } 
     217        } 
     218 
     219        switch($_POST['mode']) { 
     220            // 支払い方法指定 → 配達日時指定 
     221        case 'deliv_date': 
     222            // 入力値の変換 
     223            $this->objFormParam->convParam(); 
     224            $this->arrErr = $this->lfCheckError($this->arrData); 
     225            if (!isset($this->arrErr['payment_id'])) { 
     226                // 支払い方法の入力エラーなし 
     227                $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     228                $this->tpl_title = "配達日時指定"; 
     229                break; 
     230            } else { 
     231                // ユーザユニークIDの取得 
     232                $uniqid = $objSiteSess->getUniqId(); 
     233                // 受注一時テーブルからの情報を格納 
     234                $this->lfSetOrderTempData($uniqid); 
     235            } 
     236            break; 
     237        case 'confirm': 
     238            // 入力値の変換 
     239            $this->objFormParam->convParam(); 
     240            $this->arrErr = $this->lfCheckError($this->arrData ); 
     241            // 入力エラーなし 
     242            if(count($this->arrErr) == 0) { 
     243                // DBへのデータ登録 
     244                $this->lfRegistData($uniqid); 
     245                // 正常に登録されたことを記録しておく 
     246                $objSiteSess->setRegistFlag(); 
     247                // 確認ページへ移動 
     248                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM), true); 
     249                exit; 
     250            }else{ 
     251                // ユーザユニークIDの取得 
     252                $uniqid = $objSiteSess->getUniqId(); 
     253                // 受注一時テーブルからの情報を格納 
     254                $this->lfSetOrderTempData($uniqid); 
     255                if (!isset($this->arrErr['payment_id'])) { 
     256                    // 支払い方法の入力エラーなし 
     257                    $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     258                    $this->tpl_title = "配達日時指定"; 
     259                } 
     260            } 
     261            break; 
     262            // 前のページに戻る 
     263        case 'return': 
     264            // 非会員の場合 
     265            // 正常な推移であることを記録しておく 
     266            $objSiteSess->setRegistFlag(); 
     267            $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     268            exit; 
     269            break; 
     270            // 支払い方法が変更された場合 
     271        case 'payment': 
     272            // ここのbreakは、意味があるので外さないで下さい。 
     273            break; 
     274        default: 
     275            // 受注一時テーブルからの情報を格納 
     276            $this->lfSetOrderTempData($uniqid); 
     277            break; 
     278        } 
     279 
     280        // 店舗情報の取得 
     281        $arrInfo = $objSiteInfo->data; 
     282        // 購入金額の取得得 
     283        $total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 
     284        // 支払い方法の取得 
     285        $this->arrPayment = $this->lfGetPayment($total_pretax); 
     286        // 配送時間の取得 
     287        $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 
     288        $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 
     289 
     290        // 配送日一覧の取得 
     291        $this->arrDelivDate = $this->lfGetDelivDate(); 
     292 
     293        $this->arrForm = $this->objFormParam->getFormParamList(); 
     294 
     295        $objView->assignobj($this); 
     296        $objView->display(SITE_FRAME); 
    152297    } 
    153298 
     
    208353        $objErr->arrErr = $this->objFormParam->checkError(); 
    209354 
     355        if (!isset($_POST['point_check'])) $_POST['point_check'] = ""; 
     356 
    210357        if($_POST['point_check'] == '1') { 
    211358            $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); 
     
    215362                $max_point = 0; 
    216363            } 
     364            // FIXME mobile 互換のため br は閉じない... 
    217365            if($arrRet['use_point'] > $max_point) { 
    218                 $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br />"; 
     366                $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>"; 
    219367            } 
    220368            if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) { 
    221                 $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br />"; 
     369                $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>"; 
    222370            } 
    223371        } 
Note: See TracChangeset for help on using the changeset viewer.