Changeset 16168


Ignore:
Timestamp:
2007/09/28 21:34:04 (16 years ago)
Author:
nanasess
Message:

モバイル対応

Location:
branches/feature-module-update
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping.php

    r15610 r16168  
    165165        // フレームを選択(キャンペーンページから遷移なら変更) 
    166166        $objCampaignSess->pageView($objView); 
     167    } 
     168 
     169    /** 
     170     * モバイルページを初期化する. 
     171     * 
     172     * @return void 
     173     */ 
     174    function mobileInit() { 
     175        $this->init(); 
     176        $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . 'shopping/index.tpl'; 
     177    } 
     178 
     179    /** 
     180     * Page のプロセス(モバイル). 
     181     * 
     182     * @return void 
     183     */ 
     184    function mobileProcess() { 
     185        $conn = new SC_DBConn(); 
     186        $objView = new SC_MobileView(); 
     187        $objSiteSess = new SC_SiteSession(); 
     188        $objCartSess = new SC_CartSession(); 
     189        $objCustomer = new SC_Customer(); 
     190        $objCookie = new SC_Cookie(); 
     191        $this->objFormParam = new SC_FormParam();           // フォーム用 
     192        $helperMobile = new SC_Helper_Mobile_Ex(); 
     193        $this->lfInitParam();                               // パラメータ情報の初期化 
     194        $this->objFormParam->setParam($_POST);          // POST値の取得 
     195 
     196        // ユーザユニークIDの取得と購入状態の正当性をチェック 
     197        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
     198 
     199        $this->tpl_uniqid = $uniqid; 
     200 
     201        // ログインチェック 
     202        if($objCustomer->isLoginSuccess()) { 
     203            // すでにログインされている場合は、お届け先設定画面に転送 
     204            $this->sendRedirect($this->getLocation($helperMobile->gfAddSessionId('./deliv.php'))); 
     205            exit; 
     206        } 
     207 
     208        // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
     209        $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 
     210 
     211        switch($_POST['mode']) { 
     212        case 'nonmember_confirm': 
     213            $this->lfSetNonMember($this); 
     214            // ※breakなし 
     215        case 'confirm': 
     216            // 入力値の変換 
     217            $this->objFormParam->convParam(); 
     218            $this->objFormParam->toLower('order_mail'); 
     219            $this->objFormParam->toLower('order_mail_check'); 
     220 
     221            $this->arrErr = $this->lfCheckError(); 
     222 
     223            // 入力エラーなし 
     224            if(count($this->arrErr) == 0) { 
     225                // DBへのデータ登録 
     226                $this->lfRegistData($uniqid); 
     227                // 正常に登録されたことを記録しておく 
     228                $objSiteSess->setRegistFlag(); 
     229                // お支払い方法選択ページへ移動 
     230                $this->sendRedirect($this->getLocation($helperMobile->gfAddSessionId(MOBILE_URL_SHOP_PAYMENT))); 
     231                exit; 
     232            } 
     233 
     234            break; 
     235            // 前のページに戻る 
     236        case 'return': 
     237            // 確認ページへ移動 
     238            $this->sendRedirect($this->getLocation($helperMobile->gfAddSessionId(MOBILE_URL_CART_TOP))); 
     239            exit; 
     240            break; 
     241        case 'nonmember': 
     242            $this->lfSetNonMember($this); 
     243            // ※breakなし 
     244        default: 
     245            if($_GET['from'] == 'nonmember') { 
     246                $this->lfSetNonMember($this); 
     247            } 
     248            // ユーザユニークIDの取得 
     249            $uniqid = $objSiteSess->getUniqId(); 
     250            $objQuery = new SC_Query(); 
     251            $where = "order_temp_id = ?"; 
     252            $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 
     253            // DB値の取得 
     254            $this->objFormParam->setParam($arrRet[0]); 
     255            $this->objFormParam->setValue('order_email_check', $arrRet[0]['order_email']); 
     256            $this->objFormParam->setDBDate($arrRet[0]['order_birth']); 
     257            break; 
     258        } 
     259 
     260        // クッキー判定 
     261        $this->tpl_login_email = $objCookie->getCookie('login_email'); 
     262        if($this->tpl_login_email != "") { 
     263            $this->tpl_login_memory = "1"; 
     264        } 
     265 
     266        // 選択用日付の取得 
     267        $objDate = new SC_Date(START_BIRTH_YEAR); 
     268        $this->arrYear = $objDate->getYear('', 1950);   // 日付プルダウン設定 
     269        $this->arrMonth = $objDate->getMonth(); 
     270        $this->arrDay = $objDate->getDay(); 
     271 
     272        if($this->year == '') { 
     273            $this->year = '----'; 
     274        } 
     275 
     276        // 入力値の取得 
     277        $this->arrForm = $this->objFormParam->getFormParamList(); 
     278 
     279        if($this->arrForm['year']['value'] == ""){ 
     280            $this->arrForm['year']['value'] = '----'; 
     281        } 
     282 
     283        $objView->assignobj($this); 
     284        $objView->display(SITE_FRAME); 
    167285    } 
    168286 
  • branches/feature-module-update/html/mobile/shopping/index.php

    r15532 r16168  
    11<?php 
    22/** 
    3  *  
     3 * 
    44 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 
    55 * 
    66 * http://www.lockon.co.jp/ 
    7  *  
     7 * 
     8 * 
     9 * モバイルサイト/商品購入 
    810 */ 
    911 
     12// {{{ requires 
    1013require_once("../require.php"); 
     14require_once(CLASS_PATH . "page_extends/shopping/LC_Page_Shopping_Ex.php"); 
    1115 
    12 class LC_Page { 
    13     var $arrSession; 
    14     var $tpl_mode; 
    15     var $tpl_login_email; 
    16     function LC_Page() { 
    17         $this->tpl_mainpage = 'shopping/index.tpl'; 
    18         global $arrPref; 
    19         $this->arrPref = $arrPref; 
    20         global $arrSex; 
    21         $this->arrSex = $arrSex; 
    22         global $arrJob; 
    23         $this->arrJob = $arrJob; 
    24         $this->tpl_onload = 'fnCheckInputDeliv();'; 
    25          
    26         /* 
    27          session_start時のno-cacheヘッダーを抑制することで 
    28          「戻る」ボタン使用時の有効期限切れ表示を抑制する。 
    29          private-no-expire:クライアントのキャッシュを許可する。 
    30         */ 
    31         session_cache_limiter('private-no-expire');              
    32     } 
    33 } 
     16// }}} 
     17// {{{ generate page 
    3418 
    35 $conn = new SC_DBConn(); 
    36 $objPage = new LC_Page(); 
    37 $objView = new SC_MobileView(); 
    38 $objSiteSess = new SC_SiteSession(); 
    39 $objCartSess = new SC_CartSession(); 
    40 $objCustomer = new SC_Customer(); 
    41 $objCookie = new SC_Cookie(); 
    42 $objFormParam = new SC_FormParam();         // フォーム用 
    43 lfInitParam();                              // パラメータ情報の初期化 
    44 $objFormParam->setParam($_POST);            // POST値の取得 
    45  
    46 // ユーザユニークIDの取得と購入状態の正当性をチェック 
    47 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 
    48  
    49 $objPage->tpl_uniqid = $uniqid; 
    50  
    51 // ログインチェック 
    52 if($objCustomer->isLoginSuccess()) { 
    53     // すでにログインされている場合は、お届け先設定画面に転送 
    54     header("Location: " . gfAddSessionId('deliv.php')); 
    55     exit; 
    56 } 
    57  
    58 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
    59 $objPage->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 
    60  
    61 switch($_POST['mode']) { 
    62 case 'nonmember_confirm': 
    63     $objPage = lfSetNonMember($objPage); 
    64     // ※breakなし 
    65 case 'confirm': 
    66     // 入力値の変換 
    67     $objFormParam->convParam(); 
    68     $objFormParam->toLower('order_mail'); 
    69     $objFormParam->toLower('order_mail_check'); 
    70      
    71     $objPage->arrErr = lfCheckError(); 
    72  
    73     // 入力エラーなし 
    74     if(count($objPage->arrErr) == 0) { 
    75         // DBへのデータ登録 
    76         lfRegistData($uniqid); 
    77         // 正常に登録されたことを記録しておく 
    78         $objSiteSess->setRegistFlag(); 
    79         // お支払い方法選択ページへ移動 
    80         header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_PAYMENT)); 
    81         exit;        
    82     } 
    83      
    84     break; 
    85 // 前のページに戻る 
    86 case 'return': 
    87     // 確認ページへ移動 
    88     header("Location: " . gfAddSessionId(MOBILE_URL_CART_TOP)); 
    89     exit; 
    90     break; 
    91 case 'nonmember': 
    92     $objPage = lfSetNonMember($objPage); 
    93     // ※breakなし 
    94 default: 
    95     if($_GET['from'] == 'nonmember') { 
    96         $objPage = lfSetNonMember($objPage); 
    97     } 
    98     // ユーザユニークIDの取得 
    99     $uniqid = $objSiteSess->getUniqId(); 
    100     $objQuery = new SC_Query(); 
    101     $where = "order_temp_id = ?"; 
    102     $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 
    103     // DB値の取得 
    104     $objFormParam->setParam($arrRet[0]); 
    105     $objFormParam->setValue('order_email_check', $arrRet[0]['order_email']); 
    106     $objFormParam->setDBDate($arrRet[0]['order_birth']); 
    107     break; 
    108 } 
    109  
    110 // クッキー判定 
    111 $objPage->tpl_login_email = $objCookie->getCookie('login_email'); 
    112 if($objPage->tpl_login_email != "") { 
    113     $objPage->tpl_login_memory = "1"; 
    114 } 
    115  
    116 // 選択用日付の取得 
    117 $objDate = new SC_Date(START_BIRTH_YEAR); 
    118 $objPage->arrYear = $objDate->getYear('', 1950);    // 日付プルダウン設定 
    119 $objPage->arrMonth = $objDate->getMonth(); 
    120 $objPage->arrDay = $objDate->getDay(); 
    121  
    122 if($objPage->year == '') { 
    123     $objPage->year = '----'; 
    124 } 
    125  
    126 // 入力値の取得 
    127 $objPage->arrForm = $objFormParam->getFormParamList(); 
    128  
    129 if($objPage->arrForm['year']['value'] == ""){ 
    130     $objPage->arrForm['year']['value'] = '----';     
    131 } 
    132  
    133 $objView->assignobj($objPage); 
    134 $objView->display(SITE_FRAME); 
    135 //-------------------------------------------------------------------------------------------------------------------------- 
    136 /* 非会員入力ページのセット */ 
    137 function lfSetNonMember($objPage) { 
    138     $objPage->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    139     $objPage->tpl_css = array(); 
    140     $objPage->tpl_css[] = '/css/layout/login/nonmember.css'; 
    141     return $objPage; 
    142 } 
    143  
    144 /* パラメータ情報の初期化 */ 
    145 function lfInitParam() { 
    146     global $objFormParam; 
    147     $objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    148     $objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    149     $objFormParam->addParam("フリガナ(セイ)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    150     $objFormParam->addParam("フリガナ(メイ)", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    151     $objFormParam->addParam("郵便番号1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    152     $objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    153     $objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    154     $objFormParam->addParam("住所1", "order_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    155     $objFormParam->addParam("住所2", "order_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    156     $objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    157     $objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    158     $objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    159     $objFormParam->addParam("FAX番号1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    160     $objFormParam->addParam("FAX番号2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    161     $objFormParam->addParam("FAX番号3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    162     $objFormParam->addParam("メールアドレス", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK")); 
    163     $objFormParam->addParam("メールアドレス(確認)", "order_email_check", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false); 
    164     $objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    165     $objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    166     $objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
    167     $objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    168     $objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    169     $objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    170     $objFormParam->addParam("お名前(姓)", "deliv_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    171     $objFormParam->addParam("お名前(名)", "deliv_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    172     $objFormParam->addParam("フリガナ(セイ)", "deliv_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    173     $objFormParam->addParam("フリガナ(メイ)", "deliv_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    174     $objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    175     $objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK")); 
    176     $objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    177     $objFormParam->addParam("住所1", "deliv_addr01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    178     $objFormParam->addParam("住所2", "deliv_addr02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    179     $objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    180     $objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    181     $objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    182     $objFormParam->addParam("メールマガジン", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1); 
    183 } 
    184  
    185 /* DBへデータの登録 */ 
    186 function lfRegistData($uniqid) { 
    187     global $objFormParam; 
    188     $arrRet = $objFormParam->getHashArray(); 
    189     $sqlval = $objFormParam->getDbArray(); 
    190     // 登録データの作成 
    191     $sqlval['order_temp_id'] = $uniqid; 
    192     $sqlval['order_birth'] = sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 
    193     $sqlval['update_date'] = 'Now()'; 
    194     $sqlval['customer_id'] = '0'; 
    195      
    196     // 既存データのチェック 
    197     $objQuery = new SC_Query(); 
    198     $where = "order_temp_id = ?"; 
    199     $cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid)); 
    200     // 既存データがない場合 
    201     if ($cnt == 0) { 
    202         $sqlval['create_date'] = 'Now()'; 
    203         $objQuery->insert("dtb_order_temp", $sqlval); 
    204     } else { 
    205         $objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid)); 
    206     } 
    207 } 
    208  
    209 /* 入力内容のチェック */ 
    210 function lfCheckError() { 
    211     global $objFormParam; 
    212     // 入力データを渡す。 
    213     $arrRet =  $objFormParam->getHashArray(); 
    214     $objErr = new SC_CheckError($arrRet); 
    215     $objErr->arrErr = $objFormParam->checkError(); 
    216          
    217     // 別のお届け先チェック 
    218     if($_POST['deliv_check'] == "1") {  
    219         $objErr->doFunc(array("お名前(姓)", "deliv_name01"), array("EXIST_CHECK")); 
    220         $objErr->doFunc(array("お名前(名)", "deliv_name02"), array("EXIST_CHECK")); 
    221         $objErr->doFunc(array("フリガナ(セイ)", "deliv_kana01"), array("EXIST_CHECK")); 
    222         $objErr->doFunc(array("フリガナ(メイ)", "deliv_kana02"), array("EXIST_CHECK")); 
    223         $objErr->doFunc(array("郵便番号1", "deliv_zip01"), array("EXIST_CHECK")); 
    224         $objErr->doFunc(array("郵便番号2", "deliv_zip02"), array("EXIST_CHECK")); 
    225         $objErr->doFunc(array("都道府県", "deliv_pref"), array("EXIST_CHECK")); 
    226         $objErr->doFunc(array("住所1", "deliv_addr01"), array("EXIST_CHECK")); 
    227         $objErr->doFunc(array("住所2", "deliv_addr02"), array("EXIST_CHECK")); 
    228         $objErr->doFunc(array("電話番号1", "deliv_tel01"), array("EXIST_CHECK")); 
    229         $objErr->doFunc(array("電話番号2", "deliv_tel02"), array("EXIST_CHECK")); 
    230         $objErr->doFunc(array("電話番号3", "deliv_tel03"), array("EXIST_CHECK")); 
    231     } 
    232      
    233     // 複数項目チェック 
    234     $objErr->doFunc(array("TEL", "order_tel01", "order_tel02", "order_tel03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    235     $objErr->doFunc(array("FAX", "order_fax01", "order_fax02", "order_fax03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    236     $objErr->doFunc(array("郵便番号", "order_zip01", "order_zip02"), array("ALL_EXIST_CHECK")); 
    237     $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    238     $objErr->doFunc(array("FAX", "deliv_fax01", "deliv_fax02", "deliv_fax03", TEL_ITEM_LEN), array("TEL_CHECK")); 
    239     $objErr->doFunc(array("郵便番号", "deliv_zip01", "deliv_zip02"), array("ALL_EXIST_CHECK")); 
    240     $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_DATE")); 
    241     $objErr->doFunc(array("メールアドレス", "メールアドレス(確認)", "order_email", "order_email_check"), array("EQUAL_CHECK")); 
    242      
    243     // すでにメルマガテーブルに会員としてメールアドレスが登録されている場合 
    244     if(sfCheckCustomerMailMaga($arrRet['order_email'])) { 
    245         $objErr->arrErr['order_email'] = "このメールアドレスはすでに登録されています。<br>"; 
    246     } 
    247          
    248     return $objErr->arrErr; 
    249 } 
     19$objPage = new LC_Page_Shopping_Ex(); 
     20$objPage->mobileInit(); 
     21$objPage->mobileProcess(); 
     22register_shutdown_function(array($objPage, "destroy")); 
    25023?> 
Note: See TracChangeset for help on using the changeset viewer.