[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 メーリングリストの案内