[Svn-src-all:1203] [version-2_5-dev 20091] #984([フロント]商品購入 リファクタリング)
nanasess
admin @ mail.ec-cube.net
2011年 2月 4日 (金) 16:26:14 JST
Subversion committed to /home/svn/open 20091
http://svn.ec-cube.net/open_trac/changeset/20091
┌────────────────────────────┐
│更新者 : nanasess │
│更新日時: 2011-02-04 16:26:14 +0900 (金, 04 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#984([フロント]商品購入 リファクタリング)
#783(ページ間の遷移方法の改善)
* /shopping/index.php のログイン処理を修正
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/Smarty/templates/default/shopping/index.tpl
U branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/index.tpl
U branches/version-2_5-dev/data/Smarty/templates/sphone/shopping/index.tpl
U branches/version-2_5-dev/data/class/SC_FormParam.php
U branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
U branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
変更: branches/version-2_5-dev/data/Smarty/templates/default/shopping/index.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/default/shopping/index.tpl 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/Smarty/templates/default/shopping/index.tpl 2011-02-04 07:26:14 UTC (rev 20091)
@@ -23,7 +23,7 @@
<div id="under02column">
<div id="under02column_login">
<h2 class="title"><!--{$tpl_title|h}--></h2>
- <form name="member_form" id="member_form" method="post" action="./deliv.php" onsubmit="return fnCheckLogin('member_form')">
+ <form name="member_form" id="member_form" method="post" action="?" onsubmit="return fnCheckLogin('member_form')">
<div class="loginarea">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<p><img src="<!--{$TPL_URLPATH}-->img/title/tit_sub_member.gif" width="202" height="16" alt="会員登録がお済みのお客様" /></p>
変更: branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/index.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/index.tpl 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/index.tpl 2011-02-04 07:26:14 UTC (rev 20091)
@@ -32,7 +32,8 @@
<!--{/if}-->
<!--▼会員登録がお済みのお客様-->
-<form name="member_form" id="member_form" method="post" action="./deliv.php">
+<form name="member_form" id="member_form" method="post" action="?">
+ <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->">
<input type="hidden" name="mode" value="login">
<!--{if !$tpl_valid_phone_id}-->
■以前にご注文された方<br>
変更: branches/version-2_5-dev/data/Smarty/templates/sphone/shopping/index.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/sphone/shopping/index.tpl 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/Smarty/templates/sphone/shopping/index.tpl 2011-02-04 07:26:14 UTC (rev 20091)
@@ -23,7 +23,7 @@
<div id="under02column">
<div id="under02column_login">
<h2 class="title"><!--{$tpl_title|h}--></h2>
- <form name="member_form" id="member_form" method="post" action="./deliv.php" onsubmit="return fnCheckLogin('member_form')">
+ <form name="member_form" id="member_form" method="post" action="?" onsubmit="return fnCheckLogin('member_form')">
<div class="loginarea">
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<h3>会員登録がお済みのお客様</h3>
変更: branches/version-2_5-dev/data/class/SC_FormParam.php
===================================================================
--- branches/version-2_5-dev/data/class/SC_FormParam.php 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/class/SC_FormParam.php 2011-02-04 07:26:14 UTC (rev 20091)
@@ -25,6 +25,7 @@
* パラメータ管理クラス
*
* :XXX: addParam と setParam で言う「パラメータ」が用語として競合しているように感じる。(2009/10/17 Seasoft 塚田)
+ * TODO 配列の再帰処理
*
* @package SC
* @author LOCKON CO.,LTD.
@@ -413,5 +414,36 @@
$cnt++;
}
}
+
+ /**
+ * 入力パラメータの先頭及び末尾にある空白文字を削除する.
+ *
+ * @param boolean $has_wide_space 全角空白も削除する場合 true
+ * @return void
+ */
+ function trimParam($has_wide_space = true) {
+ $cnt = 0;
+ $pattern = '/^[ \r\n\t]*(.*?)[ \r\n\t]*$/u';
+ foreach ($this->keyname as $val) {
+ if (!isset($this->param[$cnt])) $this->param[$cnt] = "";
+
+ if (!is_array($this->param[$cnt])) {
+ if ($has_wide_space) {
+ $this->param[$cnt] = preg_replace($pattern, '$1', $this->param[$cnt]);
+ }
+ $this->param[$cnt] = trim($this->param[$cnt]);
+ } else {
+ $max = count($this->param[$cnt]);
+ // XXX foreach の方が良い?
+ for ($i = 0; $i < $max; $i++) {
+ if ($has_wide_space) {
+ $this->param[$cnt][$i] = preg_replace($pattern, '$1', $this->param[$cnt][$i]);
+ }
+ $this->param[$cnt][$i] = trim($this->param[$cnt][$i]);
+ }
+ }
+ $cnt++;
+ }
+ }
}
?>
変更: branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php 2011-02-04 07:26:14 UTC (rev 20091)
@@ -82,8 +82,6 @@
$objPurchase = new SC_Helper_Purchase_Ex();
$objFormParam = new SC_FormParam();
- $this->lfInitParam($objFormParam);
- $objFormParam->setParam($_POST);
$this->tpl_uniqid = $objSiteSess->getUniqId();
$objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess);
@@ -94,7 +92,7 @@
if ($objCustomer->isLoginSuccess(true)) {
SC_Response_Ex::sendRedirect(
$this->getNextLocation($this->cartKey, $this->tpl_uniqid,
- $objCustomer));
+ $objCustomer, $objPurchase));
exit;
}
// 非会員かつ, ダウンロード商品の場合はエラー表示
@@ -115,10 +113,50 @@
}
switch ($this->getMode()) {
- // 登録
+ // ログイン実行
+ case 'login':
+ $this->lfInitLoginFormParam($objFormParam);
+ $objFormParam->setParam($_POST);
+ $objFormParam->trimParam();
+ $objFormParam->convParam();
+ $objFormParam->toLower('login_email');
+ $this->arrErr = $objFormParam->checkError();
+
+ // ログイン判定
+ if (SC_Utils_Ex::isBlank($this->arrErr)
+ && $this->doLogin($objCustomer,
+ $objFormParam->getValue('login_email'),
+ $objFormParam->getValue('login_pass'))) {
+
+ // モバイルサイトで携帯アドレスの登録が無い場合
+ if($this->hasEmailMobile($objCustomer)) {
+ SC_Response_Ex::sendRedirect('../entry/email_mobile.php');
+ exit;
+ }
+ SC_Response_Ex::sendRedirect(
+ $this->getNextLocation($this->cartKey, $this->tpl_uniqid,
+ $objCustomer, $objPurchase));
+ exit;
+ }
+ // ログインに失敗した場合
+ else {
+ // 仮登録の場合
+ if($this->checkTempCustomer($objFormParam->getValue('login_email'))) {
+ SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
+ exit;
+ } else {
+ SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
+ exit;
+ }
+ }
+ break;
+
+ // お客様情報登録
case 'nonmember_confirm':
$this->tpl_mainpage = 'shopping/nonmember_input.tpl';
$this->tpl_title = 'お客様情報入力';
+ $this->lfInitParam($objFormParam);
+ $objFormParam->setParam($_POST);
$this->arrErr = $this->lfCheckError($objFormParam);
@@ -139,8 +177,10 @@
exit;
break;
- // 複数配送
+ // 複数配送ページへ遷移
case 'multiple':
+ $this->lfInitParam($objFormParam);
+ $objFormParam->setParam($_POST);
$this->arrErr = $this->lfCheckError($objFormParam);
if (SC_Utils_Ex::isBlank($this->arrErr)) {
@@ -153,19 +193,23 @@
}
// ※breakなし
- // 入力
+ // お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = 'shopping/nonmember_input.tpl';
$this->tpl_title = 'お客様情報入力';
-
// ※breakなし
default:
- // 前のページから戻ってきた場合
+ // 前のページから戻ってきた場合は, お客様情報入力ページ
if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
$this->tpl_mainpage = 'shopping/nonmember_input.tpl';
$this->tpl_title = 'お客様情報入力';
+ $this->lfInitParam($objFormParam);
}
+ // 通常はログインページ
+ else {
+ $this->lfInitLoginFormParam($objFormParam);
+ }
$this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid);
$objPurchase->unsetShippingTemp();
@@ -198,12 +242,13 @@
}
/**
- * パラメータ情報の初期化を行う.
+ * お客様情報入力時のパラメータ情報の初期化を行う.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return void
*/
function lfInitParam(&$objFormParam) {
+
$objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
$objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
$objFormParam->addParam("お名前(フリガナ・姓)", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "KANA_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
@@ -243,6 +288,18 @@
}
/**
+ * ログイン時のパラメータ情報の初期化を行う.
+ *
+ * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+ * @return void
+ */
+ function lfInitLoginFormParam(&$objFormParam) {
+ $objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+ $objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+ $objFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN2, "", array("EXIST_CHECK"));
+ }
+
+ /**
* ログイン済みの場合の遷移先を取得する.
*
* 商品種別IDが, ダウンロード商品の場合は, 会員情報を受注一時情報に保存し,
@@ -250,9 +307,12 @@
* それ以外は, お届け先選択画面のパスを返す.
*
* @param integer $product_type_id 商品種別ID
+ * @param string $uniqid 受注一時テーブルのユニークID
+ * @param SC_Customer $objCustomer SC_Customer インスタンス
+ * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス
* @return string 遷移先のパス
*/
- function getNextLocation($product_type_id, $uniqid, &$objCustomer) {
+ function getNextLocation($product_type_id, $uniqid, &$objCustomer, &$objPurchase) {
switch ($product_type_id) {
case PRODUCT_TYPE_DOWNLOAD:
$objPurchase->saveOrderTemp($uniqid, array(), $objCustomer);
@@ -325,7 +385,7 @@
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return array エラー情報の配
*/
- function lfCheckError($objFormParam) {
+ function lfCheckError(&$objFormParam) {
// 入力値の変換
$objFormParam->convParam();
$objFormParam->toLower('order_mail');
@@ -375,25 +435,101 @@
* @return void
*/
function setFormParams(&$objFormParam, &$objPurchase, $uniqid) {
- $arrOrderTemp = $objPurchase->getOrderTemp($uniqid);
- if (SC_Utils_Ex::isBlank($arrOrderTemp)) {
- $arrOrderTemp = array('order_email' => "",
- 'order_birth' => "");
- }
- $arrShippingTemp = $objPurchase->getShippingTemp();
+ $arrOrderTemp = $objPurchase->getOrderTemp($uniqid);
+ if (SC_Utils_Ex::isBlank($arrOrderTemp)) {
+ $arrOrderTemp = array('order_email' => "",
+ 'order_birth' => "");
+ }
+ $arrShippingTemp = $objPurchase->getShippingTemp();
- $objFormParam->setParam($arrOrderTemp);
- /*
- * count($arrShippingTemp) > 1 は複数配送であり,
- * $arrShippingTemp[0] は注文者が格納されている
- */
- if (count($arrShippingTemp) > 1) {
- $objFormParam->setParam($arrShippingTemp[1]);
- } else {
- $objFormParam->setParam($arrShippingTemp[0]);
- }
- $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']);
- $objFormParam->setDBDate($arrOrderTemp['order_birth']);
+ $objFormParam->setParam($arrOrderTemp);
+ /*
+ * count($arrShippingTemp) > 1 は複数配送であり,
+ * $arrShippingTemp[0] は注文者が格納されている
+ */
+ if (count($arrShippingTemp) > 1) {
+ $objFormParam->setParam($arrShippingTemp[1]);
+ } else {
+ $objFormParam->setParam($arrShippingTemp[0]);
+ }
+ $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']);
+ $objFormParam->setDBDate($arrOrderTemp['order_birth']);
}
+
+ /**
+ * ログインを実行する.
+ *
+ * ログインを実行し, 成功した場合はユーザー情報をセッションに格納し,
+ * true を返す.
+ * モバイル端末の場合は, 携帯端末IDを保存する.
+ * ログインに失敗した場合は, false を返す.
+ *
+ * @param SC_Customer $objCustomer SC_Customer インスタンス
+ * @param string $login_email ログインメールアドレス
+ * @param string $login_pass ログインパスワード
+ * @return boolean ログインに成功した場合 true; 失敗した場合 false
+ */
+ function doLogin(&$objCustomer, $login_email, $login_pass) {
+
+ switch (SC_Display::detectDevice()) {
+ case DEVICE_TYPE_MOBILLE:
+ if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($login_pass) &&
+ !$objCustomer->getCustomerDataFromEmailPass($login_pass, $login_email, true)) {
+ return false;
+ } else {
+ $objCustomer->updateMobilePhoneId();
+ return true;
+ }
+ break;
+
+ case DEVICE_TYPE_SMARTPHONE:
+ case DEVICE_TYPE_PC:
+ default:
+ if(!$objCustomer->getCustomerDataFromEmailPass($login_pass, $login_email)) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ /**
+ * ログインした会員の携帯メールアドレス登録があるかどうか
+ *
+ * 端末種別がモバイルの場合, ログインした会員の携帯メールアドレスの存在をチェックする
+ *
+ * @param SC_Customer $objCustomer SC_Customer インスタンス
+ * @return boolean 会員の携帯メールアドレス登録がある場合 true
+ */
+ function hasEmailMobile(&$objCustomer) {
+ switch (SC_Display::detectDevice()) {
+ case DEVICE_TYPE_MOBILLE:
+ $objMobile = new SC_Helper_Mobile_Ex();
+ if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
+ if (!$objCustomer->hasValue('email_mobile')) {
+ return true;
+ }
+ }
+ break;
+
+ case DEVICE_TYPE_SMARTPHONE:
+ case DEVICE_TYPE_PC:
+ default:
+ }
+ return false;
+ }
+
+ /**
+ * 仮会員かどうかを判定する.
+ *
+ * @param string $login_email メールアドレス
+ * @return boolean 仮会員の場合 true
+ */
+ function checkTempCustomer($login_email) {
+ $objQuery =& SC_Query::getSingletonInstance();
+ $where = "email = ? AND status = 1 AND del_flg = 0";
+ $count = $objQuery->count("dtb_customer", $where, array($login_email));
+ return $count > 0;
+ }
}
?>
変更: branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php 2011-02-04 05:41:28 UTC (rev 20090)
+++ branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php 2011-02-04 07:26:14 UTC (rev 20091)
@@ -33,14 +33,6 @@
*/
class LC_Page_Shopping_Deliv extends LC_Page {
- // {{{ properties
-
- /** フォームパラメータの配列 */
- var $objFormParam;
-
- /** ログインフォームパラメータ配列 */
- var $objLoginFormParam;
-
// }}}
// {{{ functions
@@ -78,116 +70,35 @@
$objCustomer = new SC_Customer();
$objPurchase = new SC_Helper_Purchase_Ex();
$objQuery = SC_Query::getSingletonInstance();;
- // クッキー管理クラス
$objCookie = new SC_Cookie(COOKIE_EXPIRE);
- // パラメータ管理クラス
- $this->objFormParam = new SC_FormParam();
- // パラメータ情報の初期化
- $this->lfInitParam();
- // POST値の取得
- $this->objFormParam->setParam($_POST);
+ $this->tpl_uniqid = $objSiteSess->getUniqId();
+ $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess);
- $this->objLoginFormParam = new SC_FormParam(); // ログインフォーム用
- $this->lfInitLoginFormParam();
- //パスワード・Eメールにある空白をトリム
- $this->lfConvertEmail($_POST["login_email"]);
- $this->lfConvertLoginPass($_POST["login_pass"]);
- $this->objLoginFormParam->setParam($_POST); // POST値の取得
-
- // ユーザユニークIDの取得と購入状態の正当性をチェック
- $uniqid = $objSiteSess->getUniqId();
- $objPurchase->verifyChangeCart($uniqid, $objCartSess);
-
- $this->tpl_uniqid = $uniqid;
-
$this->cartKey = $objCartSess->getKey();
- // ログインチェック TODO 要リファクタリング(MODE if利用)
- if($this->getMode() != 'login' && !$objCustomer->isLoginSuccess(true)) {
- // 不正アクセスとみなす
+ // ログインチェック
+ if(!$objCustomer->isLoginSuccess(true)) {
SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
}
- switch($this->getMode()) {
- case 'login':
- $this->objLoginFormParam->toLower('login_email');
- $this->arrErr = $this->objLoginFormParam->checkError();
- $arrForm = $this->objLoginFormParam->getHashArray();
- // クッキー保存判定
- if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
- $objCookie->setCookie('login_email', $_POST['login_email']);
- } else {
- $objCookie->setCookie('login_email', '');
- }
+ if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){
+ // 会員情報の住所を受注一時テーブルに書き込む
+ $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping');
+ $objPurchase->saveShippingTemp($sqlval);
+ $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer);
+ // 正常に登録されたことを記録しておく
+ $objSiteSess->setRegistFlag();
+ // ダウンロード商品有りの場合は、支払方法画面に転送
+ SC_Response_Ex::sendRedirect('payment.php');
+ exit;
+ }
- if(count($this->arrErr) > 0) {
- SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
- }
- // ログイン判定
- $loginFailFlag = false;
- if(Net_UserAgent_Mobile::isMobile() === true) {
- // モバイルサイト
- if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) &&
- !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
- $loginFailFlag = true;
- }
- } else {
- // モバイルサイト以外
- if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
- $loginFailFlag = true;
- }
- }
- if($loginFailFlag === true) {
- // 仮登録の判定
- $where = "email = ? AND status = 1 AND del_flg = 0";
- $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
-
- if($ret > 0) {
- SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
- } else {
- SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
- }
- }
-
- if(Net_UserAgent_Mobile::isMobile() === true) {
- // ログインが成功した場合は携帯端末IDを保存する。
- $objCustomer->updateMobilePhoneId();
-
- /*
- * 携帯メールアドレスが登録されていない場合は,
- * 携帯メールアドレス登録画面へ遷移
- */
- $objMobile = new SC_Helper_Mobile_Ex();
- if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {
- if (!$objCustomer->hasValue('email_mobile')) {
- SC_Response_Ex::sendRedirect('../entry/email_mobile.php');
- exit;
- }
- }
- }
-
- //ダウンロード商品判定
- if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){
- // 会員情報の住所を受注一時テーブルに書き込む
- $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping');
- // FIXME ダウンロード商品の場合は配送無し
- $arrDeliv = $objPurchase->getDeliv($this->cartKey);
- $sqlval['deliv_id'] = $arrDeliv[0]['deliv_id'];
- $objPurchase->saveShippingTemp($sqlval);
- $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
- // 正常に登録されたことを記録しておく
- $objSiteSess->setRegistFlag();
- // ダウンロード商品有りの場合は、支払方法画面に転送
- SC_Response_Ex::sendRedirect('payment.php');
- exit;
- }
- break;
+ switch($this->getMode()) {
// 削除
case 'delete':
if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) {
$where = "other_deliv_id = ?";
$arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id']));
- $this->objFormParam->setValue('select_addr_id', '');
}
break;
// 会員登録住所に送る
@@ -200,7 +111,7 @@
// 会員情報の住所を受注一時テーブルに書き込む
$objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping');
$objPurchase->saveShippingTemp($sqlval);
- $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
+ $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer);
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
@@ -218,7 +129,7 @@
$objPurchase->copyFromOrder($sqlval, $otherDeliv, 'shipping', '');;
$objPurchase->saveShippingTemp($sqlval);
- $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
+ $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer);
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
@@ -245,9 +156,7 @@
default:
$objPurchase->unsetShippingTemp();
- $arrOrderTemp = $objPurchase->getOrderTemp($uniqid);
- if (empty($arrOrderTemp)) $arrOrderTemp = array("");
- $this->objFormParam->setParam($arrOrderTemp);
+
break;
}
@@ -255,7 +164,6 @@
$this->arrAddr = $objCustomer->getCustomerAddress($_SESSION['customer']['customer_id']);
// 入力値の取得
if (!isset($arrErr)) $arrErr = array();
- $this->arrForm = $this->objFormParam->getFormParamList();
$this->arrErr = $arrErr;
}
@@ -267,81 +175,5 @@
function destroy() {
parent::destroy();
}
-
- /* パラメータ情報の初期化 */
- function lfInitParam() {
- $this->objFormParam->addParam("お名前1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("お名前2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("お名前(フリガナ・姓)", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("お名前(フリガナ・名)", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
- $this->objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
- $this->objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
- $this->objFormParam->addParam("住所1", "deliv_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("住所2", "deliv_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
- $this->objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
- $this->objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
- $this->objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
- $this->objFormParam->addParam("", "deliv_check");
- }
-
- function lfInitLoginFormParam() {
- $this->objLoginFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
- $this->objLoginFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
- $this->objLoginFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN1, "", array("EXIST_CHECK"));
- $this->objLoginFormParam->addParam("パスワード", "login_pass1", PASSWORD_LEN1, "", array("EXIST_CHECK", "MIN_LENGTH_CHECK"));
- $this->objLoginFormParam->addParam("パスワード", "login_pass2", PASSWORD_LEN2, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
- }
-
- /* DBへデータの登録 */
- function lfRegistNewAddrData($uniqid, $objCustomer) {
- $sqlval = $this->objFormParam->getDbArray();
- // 登録データの作成
- $sqlval['deliv_check'] = '1';
- $sqlval['order_temp_id'] = $uniqid;
- $sqlval['update_date'] = 'Now()';
- $sqlval['customer_id'] = $objCustomer->getValue('customer_id');
- $sqlval['order_birth'] = $objCustomer->getValue('birth');
-
- $objDb = new SC_Helper_DB_Ex();
- $objDb->sfRegistTempOrder($uniqid, $sqlval);
- }
-
- /* 入力内容のチェック */
- function lfCheckError() {
- // 入力データを渡す。
- $arrRet = $this->objFormParam->getHashArray();
- $objErr = new SC_CheckError($arrRet);
- $objErr->arrErr = $this->objFormParam->checkError();
- // 複数項目チェック TODO 要リファクタリング(MODE if利用)
- if ($this->getMode() == 'login'){
- $objErr->doFunc(array("メールアドレス", "login_email", STEXT_LEN), array("EXIST_CHECK"));
- $objErr->doFunc(array("パスワード", "login_pass", STEXT_LEN), array("EXIST_CHECK"));
- }
- $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03"), array("TEL_CHECK"));
- return $objErr->arrErr;
- }
-
- /**
- * 入力されたEmailから余分な改行・空白を削除する
- *
- * @param string $_POST["login_email"]
- */
- function lfConvertEmail(){
- if( strlen($_POST["login_email"]) < 1 ){ return ; }
- $_POST["login_email"] = preg_replace('/^[ \r\n]*(.*?)[ \r\n]*$/u', '$1', $_POST["login_email"]);
- }
-
- /**
- * 入力されたPassから余分な空白を削除し、最小桁数・最大桁数チェック用に変数に入れる
- *
- * @param string $_POST["login_pass"]
- */
- function lfConvertLoginPass(){
- if( strlen($_POST["login_pass"]) < 1 ){ return ; }
- $_POST["login_pass"] = trim($_POST["login_pass"]); //認証用
- $_POST["login_pass1"] = $_POST["login_pass"]; //最小桁数比較用
- $_POST["login_pass2"] = $_POST["login_pass"]; //最大桁数比較用
- }
}
?>
Svn-src-all メーリングリストの案内