Changeset 16386 for branches/feature-module-update/data/class/pages
- Timestamp:
- 2007/10/12 10:51:27 (19 years ago)
- Location:
- branches/feature-module-update/data/class/pages
- Files:
-
- 1 added
- 6 edited
-
cart/LC_Page_Cart.php (modified) (2 diffs)
-
shopping/LC_Page_Shopping.php (modified) (5 diffs)
-
shopping/LC_Page_Shopping_Complete.php (modified) (6 diffs)
-
shopping/LC_Page_Shopping_Confirm.php (modified) (1 diff)
-
shopping/LC_Page_Shopping_Deliv.php (modified) (4 diffs)
-
shopping/LC_Page_Shopping_DelivAddr.php (added)
-
shopping/LC_Page_Shopping_Payment.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/pages/cart/LC_Page_Cart.php
r16362 r16386 219 219 // 購入ページへ 220 220 $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 221 222 221 exit; 223 222 } … … 257 256 258 257 // ログイン判定 259 if($objCustomer->isLoginSuccess( )) {258 if($objCustomer->isLoginSuccess(true)) { 260 259 $this->tpl_login = true; 261 260 $this->tpl_user_point = $objCustomer->getValue('point'); -
branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping.php
r16186 r16386 201 201 202 202 // ログインチェック 203 if($objCustomer->isLoginSuccess( )) {203 if($objCustomer->isLoginSuccess(true)) { 204 204 // すでにログインされている場合は、お届け先設定画面に転送 205 $this->sendRedirect($this->getLocation( $helperMobile->gfAddSessionId('./deliv.php')));205 $this->sendRedirect($this->getLocation('./deliv.php'), true); 206 206 exit; 207 207 } … … 209 209 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 210 210 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 211 212 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 211 213 212 214 switch($_POST['mode']) { … … 226 228 // DBへのデータ登録 227 229 $this->lfRegistData($uniqid); 230 231 // お届け先のコピー 232 $this->lfCopyDeliv($uniqid, $_POST); 233 228 234 // 正常に登録されたことを記録しておく 229 235 $objSiteSess->setRegistFlag(); 230 236 // お支払い方法選択ページへ移動 231 $this->sendRedirect($this->getLocation( SC_Helper_Mobile_Ex::gfAddSessionId(MOBILE_URL_SHOP_PAYMENT)));237 $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true); 232 238 exit; 233 239 } … … 237 243 case 'return': 238 244 // 確認ページへ移動 239 $this->sendRedirect($this->getLocation( SC_Helper_Mobile_Ex::gfAddSessionId(MOBILE_URL_CART_TOP)));245 $this->sendRedirect($this->getLocation(MOBILE_URL_CART_TOP), true); 240 246 exit; 241 247 break; … … 252 258 $where = "order_temp_id = ?"; 253 259 $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); 260 261 if (empty($arrRet)) $arrRet = array( 262 array('order_email' => "", 263 'order_birth' => "")); 264 254 265 // DB値の取得 255 266 $this->objFormParam->setParam($arrRet[0]); -
branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Complete.php
r16322 r16386 129 129 parent::destroy(); 130 130 } 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 131 208 132 209 // エビスタグ引渡し用データを生成する … … 214 291 } 215 292 // 一時テーブルを受注テーブルに格納する 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 } 217 298 // カート商品を受注詳細テーブルに格納する 218 299 $this->lfRegistOrderDetail($objQuery, $order_id, $this->objCartSess); … … 220 301 $this->lfDeleteTempOrder($objQuery, $uniqid); 221 302 // キャンペーンからの遷移の場合登録する。 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 } 224 307 } 225 308 … … 321 404 322 405 // 受注テーブルへ登録 323 function lfRegistOrder($objQuery, $arrData, $objCampaignSess ) {406 function lfRegistOrder($objQuery, $arrData, $objCampaignSess = null) { 324 407 $sqlval = $arrData; 325 408 … … 360 443 361 444 // キャンペーン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 } 363 448 364 449 // ゲットの値をインサート … … 407 492 $objQuery->insert("dtb_order_detail", $sqlval); 408 493 } 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 } 410 499 } 411 500 } -
branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Confirm.php
r16047 r16386 149 149 150 150 /** 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 /** 151 253 * デストラクタ. 152 254 * -
branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
r16381 r16386 230 230 $this->tpl_uniqid = $uniqid; 231 231 232 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 233 232 234 // ログインチェック 233 235 if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess(true)) { … … 275 277 * email がモバイルドメインでは無く, 276 278 * 携帯メールアドレスが登録されていない場合 279 * 280 * XXX 携帯メールアドレスの登録が無いと, 281 * 配送先が空欄になってしまう場合がある 277 282 */ 278 283 $objMobile = new SC_Helper_Mobile_Ex(); … … 313 318 // お届け先がチェックされている場合には更新処理を行う 314 319 if ($_POST['deli'] != "") { 315 if ( sfIsInt($_POST['other_deliv_id'])) {320 if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { 316 321 // 登録済みの別のお届け先を受注一時テーブルに書き込む 317 322 $this->lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']); … … 380 385 381 386 // 入力値の取得 387 if (!isset($arrErr)) $arrErr = array(); 382 388 $this->arrForm = $this->objFormParam->getFormParamList(); 383 389 $this->arrErr = $arrErr; -
branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Payment.php
r16043 r16386 88 88 $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); 89 89 90 // カー 都内の商品の売り切れチェック90 // カート内の商品の売り切れチェック 91 91 $objCartSess->chkSoldOut($objCartSess->getCartList()); 92 92 … … 150 150 // フレームを選択(キャンペーンページから遷移なら変更) 151 151 $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); 152 297 } 153 298 … … 208 353 $objErr->arrErr = $this->objFormParam->checkError(); 209 354 355 if (!isset($_POST['point_check'])) $_POST['point_check'] = ""; 356 210 357 if($_POST['point_check'] == '1') { 211 358 $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); … … 215 362 $max_point = 0; 216 363 } 364 // FIXME mobile 互換のため br は閉じない... 217 365 if($arrRet['use_point'] > $max_point) { 218 $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br />";366 $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>"; 219 367 } 220 368 if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) { 221 $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br />";369 $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>"; 222 370 } 223 371 }
Note: See TracChangeset
for help on using the changeset viewer.
