Ignore:
Timestamp:
2011/01/06 22:32:15 (10 years ago)
Author:
kotani
Message:

#880(mobile/sphoneディレクトリを削除)に対応。まずmobileのみ意図通りの動作になるように一部コミット(cartディレクトリ)

File:
1 edited

Legend:

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

    r19833 r19845  
    3333 * @package Page 
    3434 * @author LOCKON CO.,LTD. 
    35  * @version $Id:LC_Page_Cart.php 15532 2007-08-31 14:39:46Z nanasess $ 
     35 * @version $Id$ 
    3636 */ 
    3737class LC_Page_Cart extends LC_Page { 
     
    8686        $objSiteInfo = $objView->objSiteInfo; 
    8787        $objCustomer = new SC_Customer(); 
    88         $objDb = new SC_Helper_DB_Ex(); 
    89         $objProduct = new SC_Product(); 
    90  
    91         $i = 0; 
     88 
    9289        $this->cartKeys = $objCartSess->getKeys(); 
    9390        foreach ($this->cartKeys as $key) { 
     
    10299 
    103100        switch($_POST['mode']) { 
    104         case 'up': 
    105             $objCartSess->upQuantity($_POST['cart_no'], $_POST['cartKey']); 
    106             $this->objDisplay->reload(); // PRG pattern 
    107             break; 
    108         case 'down': 
    109             $objCartSess->downQuantity($_POST['cart_no'], $_POST['cartKey']); 
    110             $this->objDisplay->reload(); // PRG pattern 
    111             break; 
    112         case 'delete': 
    113             $objCartSess->delProduct($_POST['cart_no'], $_POST['cartKey']); 
    114             $this->objDisplay->reload(); // PRG pattern 
    115             break; 
    116101        case 'confirm': 
    117102            // カート内情報の取得 
     
    144129        } 
    145130 
     131        // 商品の個数変更、削除処理 
     132        $changeCartMode = (Net_UserAgent_Mobile::isMobile() === true) ? $_GET['mode'] : $_POST['mode']; 
     133        /* 
     134         * FIXME モバイルの場合 sfReload() ではなく sendRedirect() を使った方が良いが無限ループしてしまう... 
     135         */ 
     136        switch($changeCartMode) { 
     137        case 'up': 
     138            if(Net_UserAgent_Mobile::isMobile() === true) { 
     139                $objCartSess->upQuantity($_GET['cart_no'], $_GET['cartKey']); 
     140                SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
     141            } else { 
     142                $objCartSess->upQuantity($_POST['cart_no'], $_POST['cartKey']); 
     143                $this->objDisplay->reload(); // PRG pattern 
     144            } 
     145            break; 
     146        case 'down': 
     147            if(Net_UserAgent_Mobile::isMobile() === true) { 
     148                $objCartSess->downQuantity($_GET['cart_no'], $_GET['cartKey']); 
     149                SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
     150            } else { 
     151                $objCartSess->downQuantity($_POST['cart_no'], $_POST['cartKey']); 
     152                $this->objDisplay->reload(); // PRG pattern 
     153            } 
     154            break; 
     155        case 'delete': 
     156            if(Net_UserAgent_Mobile::isMobile() === true) { 
     157                $objCartSess->delProduct($_GET['cart_no'], $_GET['cartKey']); 
     158                SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
     159            } else { 
     160                $objCartSess->delProduct($_POST['cart_no'], $_POST['cartKey']); 
     161                $this->objDisplay->reload(); // PRG pattern 
     162            } 
     163            break; 
     164        default: 
     165            break; 
     166        } 
     167         
    146168        // 基本情報の取得 
    147169        $this->arrInfo = $objSiteInfo->data; 
     
    160182 
    161183        // ログイン判定 
    162         if($objCustomer->isLoginSuccess()) { 
    163             $this->tpl_login = true; 
    164             $this->tpl_user_point = $objCustomer->getValue('point'); 
    165             $this->tpl_name = $objCustomer->getValue('name01'); 
    166         } 
    167  
    168         // 前頁のURLを取得 
    169         $this->tpl_prev_url = $objCartSess->getPrevURL(); 
    170     } 
    171  
    172     /** 
    173      * モバイルページを初期化する. 
    174      * 
    175      * @return void 
    176      */ 
    177     function mobileInit() { 
    178         $this->init(); 
    179     } 
    180  
    181     /** 
    182      * Page のプロセス(モバイル). 
    183      * 
    184      * @return void 
    185      */ 
    186     function mobileProcess() { 
    187         parent::mobileProcess(); 
    188         $this->mobileAction(); 
    189         $this->sendResponse(); 
    190     } 
    191  
    192     /** 
    193      * Page のアクション(モバイル). 
    194      * 
    195      * @return void 
    196      */ 
    197     function mobileAction() { 
    198         // 買い物を続ける場合 
    199         if ($_REQUEST['mode'] == 'continue') { 
    200             $this->objDisplay->redirect($this->getLocation(MOBILE_TOP_URL_PATH)); 
    201             exit; 
    202         } 
    203  
    204         $objView = new SC_MobileView(false); 
    205         $objCartSess = new SC_CartSession(); 
    206         $objSiteSess = new SC_SiteSession(); 
    207         $objSiteInfo = $objView->objSiteInfo; 
    208         $objCustomer = new SC_Customer(); 
    209         $objDb = new SC_Helper_DB_Ex(); 
    210  
    211         // 商品購入中にカート内容が変更された。 
    212         if($objCartSess->getCancelPurchase()) { 
    213             $this->tpl_message = "商品購入中にカート内容が変更されましたので、お手数ですが購入手続きをやり直して下さい。"; 
    214         } 
    215  
    216         switch($_POST['mode']) { 
    217         case 'confirm': 
    218             // カート内情報の取得 
    219             $arrRet = $objCartSess->getCartList(); 
    220             $max = count($arrRet); 
    221             $cnt = 0; 
    222             for ($i = 0; $i < $max; $i++) { 
    223                 // 商品規格情報の取得 
    224                 $arrData = $objDb->sfGetProductsClass($arrRet[$i]['id']); 
    225                 // DBに存在する商品 
    226                 if($arrData != "") { 
    227                     $cnt++; 
    228                 } 
    229             } 
    230             // カート商品が1件以上存在する場合 
    231             if($cnt > 0) { 
    232                 // 正常に登録されたことを記録しておく 
    233                 $objSiteSess->setRegistFlag(); 
    234                 $pre_uniqid = $objSiteSess->getUniqId(); 
    235                 // 注文一時IDの発行 
    236                 $objSiteSess->setUniqId(); 
    237                 $uniqid = $objSiteSess->getUniqId(); 
    238                 // エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ 
    239                 if($pre_uniqid != "") { 
    240                     $sqlval['order_temp_id'] = $uniqid; 
    241                     $where = "order_temp_id = ?"; 
    242                     $objQuery = new SC_Query(); 
    243                     $objQuery->update("dtb_order_temp", $sqlval, $where, array($pre_uniqid)); 
    244                 } 
    245                 // カートを購入モードに設定 
    246                 $objCartSess->saveCurrentCart($uniqid); 
    247                 // 購入ページへ 
    248                 $this->objDisplay->redirect(MOBILE_SHOPPING_URL); 
    249                 exit; 
    250             } 
    251             break; 
    252         default: 
    253             break; 
    254         } 
    255  
    256         if (!isset($_GET['mode'])) $_GET['mode'] = ""; 
    257  
    258         /* 
    259          * FIXME sendRedirect() を使った方が良いが無限ループしてしまう... 
    260          */ 
    261         switch($_GET['mode']) { 
    262         case 'up': 
    263             $objCartSess->upQuantity($_GET['cart_no']); 
    264             SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
    265             break; 
    266         case 'down': 
    267             $objCartSess->downQuantity($_GET['cart_no']); 
    268             SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
    269             break; 
    270         case 'delete': 
    271             $objCartSess->delProduct($_GET['cart_no']); 
    272             SC_Utils_Ex::sfReload(session_name() . "=" . session_id()); 
    273             break; 
    274         } 
    275  
    276         // カート集計処理 
    277         if (empty($arrData)) { 
    278             $arrData = array(); 
    279         } 
    280         $objDb->sfTotalCart($this, $objCartSess); 
    281         $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, null, $objCustomer); 
    282  
    283         // 基本情報の取得 
    284         $this->arrInfo = $objSiteInfo->data; 
    285  
    286         // ログイン判定 
    287184        if($objCustomer->isLoginSuccess(true)) { 
    288185            $this->tpl_login = true; 
     
    291188        } 
    292189 
    293         // 送料無料までの金額を計算 
    294         $tpl_deliv_free = $this->arrInfo['free_rule'] - $this->tpl_total_inctax; 
    295         $this->tpl_deliv_free = $tpl_deliv_free; 
    296  
    297190        // 前頁のURLを取得 
    298191        $this->tpl_prev_url = $objCartSess->getPrevURL(); 
Note: See TracChangeset for help on using the changeset viewer.