[Svn-src-all:1396] [version-2_5-dev 20286] #965 (リファクタリング [管理画面]顧客管理)に関する修正 LC_Page_Admin_Customer_SearchCustomer.php

AMUAMU admin @ mail.ec-cube.net
2011年 2月 21日 (月) 07:07:46 JST


Subversion committed to /home/svn/open 20286
http://svn.ec-cube.net/open_trac/changeset/20286
┌────────────────────────────┐
│更新者 :  AMUAMU                                       │
│更新日時:  2011-02-21 07:07:46 +0900 (月, 21  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#965 (リファクタリング [管理画面]顧客管理)に関する修正 LC_Page_Admin_Customer_SearchCustomer.php

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/Smarty/templates/admin/customer/search_customer.tpl
U   branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php

変更: branches/version-2_5-dev/data/Smarty/templates/admin/customer/search_customer.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/customer/search_customer.tpl	2011-02-20 21:17:20 UTC (rev 20285)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/customer/search_customer.tpl	2011-02-20 22:07:46 UTC (rev 20286)
@@ -42,32 +42,33 @@
 <input name="mode" type="hidden" value="search">
 <input name="search_pageno" type="hidden" value="">
 <input name="customer_id" type="hidden" value="">
+<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+
 <table class="form">
     <colgroup width="20%">
     <colgroup width="80%">
     <tr>
         <th class="colmun">顧客ID</th>
         <td width="287" colspan="2">
-            <!--{if $arrErr.search_customer_id}--><span class="red12"><!--{$arrErr.search_customer_id}--></span><!--{/if}-->
-            <input type="text" name="search_customer_id" value="<!--{$arrForm.search_customer_id|h}-->" size="40" class="box40" style="<!--{$arrErr.search_customer_id|sfGetErrorColor}-->"/>
+          <!--{assign var=key value="search_customer_id"}-->
+          <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}-->
+          <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> />
         </td>
     </tr>
     <tr>
         <th class="colmun">顧客名</th>
         <td>
-            <!--{if $arrErr.search_name01}--><span class="red12"><!--{$arrErr.search_name01}--></span><!--{/if}-->
-            <!--{if $arrErr.search_name02}--><span class="red12"><!--{$arrErr.search_name02}--></span><!--{/if}-->
-            姓&nbsp;&nbsp;<input type="text" name="search_name01" value="<!--{$arrForm.search_name01|h}-->" size="15" class="box15" style="<!--{$arrErr.search_name01|sfGetErrorColor}-->"/>
-            &nbsp;名&nbsp;&nbsp;<input type="text" name="search_name02" value="<!--{$arrForm.search_name02|h}-->" size="15" class="box15" style="<!--{$arrErr.search_name02|sfGetErrorColor}-->"/>
+          <!--{assign var=key value="search_name"}-->
+          <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}-->
+          <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> />
         </td>
     </tr>
     <tr class="n">
         <th class="colmun">顧客名(カナ)</th>
         <td>
-            <!--{if $arrErr.search_kana01}--><span class="red12"><!--{$arrErr.search_kana01}--></span><!--{/if}-->
-            <!--{if $arrErr.search_kana02}--><span class="red12"><!--{$arrErr.search_kana02}--></span><!--{/if}-->
-            セイ<input type="text" name="search_kana01" value="<!--{$arrForm.search_kana01|h}-->" size="15" class="box15" style="<!--{$arrErr.search_kana01|sfGetErrorColor}-->"/>
-                                                メイ&nbsp;<input type="text" name="search_kana02" value="<!--{$arrForm.search_kana02|h}-->" size="15" class="box15" style="<!--{$arrErr.search_kana02|sfGetErrorColor}-->"/>
+        <!--{assign var=key value="search_kana"}-->
+        <!--{if $arrErr[$key]}--><span class="attention"><!--{$arrErr[$key]}--></span><br /><!--{/if}-->
+        <input type="text" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" value="<!--{$arrForm[$key].value|h}-->" size="30" class="box30" <!--{if $arrErr[$key]}--><!--{sfSetErrorStyle}--><!--{/if}--> />
         </td>
     </tr>
 </table>

変更: branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php	2011-02-20 21:17:20 UTC (rev 20285)
+++ branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_SearchCustomer.php	2011-02-20 22:07:46 UTC (rev 20286)
@@ -65,110 +65,40 @@
      */
     function action() {
         // 認証可否の判定
-        $objSess = new SC_Session();
-        SC_Utils_Ex::sfIsSuccess($objSess);
+        SC_Utils_Ex::sfIsSuccess(new SC_Session());
 
-        // POSTのモードがsearchなら顧客検索開始
-        switch ($this->getMode()) {
-        case 'search':
-            $this->objFormParam = new SC_FormParam();
-            // 値の初期化
-            $this->lfInitParam();
-            // POST値の取得
-            $this->objFormParam->setParam($_POST);
-            // 入力値の変換
-            $this->objFormParam->convParam();
-
-            // 入力された値を取得する
-            $arrForm = $this->objFormParam->getHashArray();
-
-            // エラーチェック
-            $this->arrErr = $this->lfCheckError();
-            $is_select = empty($this->arrErr);
-
-            $sqlval = array();
-            $where = "";
-
-            if ($is_select) {
-                $where = "del_flg = 0";
-
-                // 検索
-                foreach($arrForm as $tmp_key => $val){
-                    if( is_array($val) === false && 0 < strlen($val)){
-                        $key = strtr($tmp_key , array('search_' => ''));
-                        switch($key){
-                            case 'customer_id':
-                                $where .= " AND customer_id = ? ";
-                                $sqlval[] = $val;
-                                break;
-                            case 'name01':
-                                    $where .= " AND name01 ILIKE ? ";
-                                    $sqlval[] = '%'.$val.'%';
-                                break;
-                            case 'name02':
-                                    $where .= " AND name02 ILIKE ? ";
-                                    $sqlval[] = '%'.$val.'%';
-                                break;
-                            case 'kana01':
-                                    $where .= " AND kana01 ILIKE ? ";
-                                    $sqlval[] = '%'.$val.'%';
-                                break;
-                            case 'kana02':
-                                    $where .= " AND kana02 ILIKE ? ";
-                                    $sqlval[] = '%'.$val.'%';
-                                break;
-                            default :
-                                break;
-                        }
-                    }
-                }
+        // 不正アクセスチェック 
+        if ($_SERVER["REQUEST_METHOD"] == "POST") {
+            if (!SC_Helper_Session_Ex::isValidToken()) {
+                SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
             }
+        }
+        // トランザクションID
+        $this->transactionid = SC_Helper_Session_Ex::getToken();
 
+        // パラメータ管理クラス
+        $objFormParam = new SC_FormParam();
+        // パラメータ設定
+        $this->lfInitParam($objFormParam);
+        $objFormParam->setParam($_POST);
+        $objFormParam->convParam();
+        // パラメーター読み込み
+        $this->arrForm = $objFormParam->getFormParamList();
+        // 入力パラメーターチェック
+        $this->arrErr = $this->lfCheckError($objFormParam);
+        if(!SC_Utils_Ex::isBlank($this->arrErr)) {
+            return;
+        }
 
-            if( $is_select === true ){
-                $objQuery = new SC_Query();
-
-                // 既に購入した事がある顧客を取得
-                $col = '*';
-                $from = 'dtb_customer';
-                $order = 'customer_id';
-                $arrCustomer = $objQuery->select($col, $from, $where, $sqlval);
-
-                // 顧客情報を取得できたら、テンプレートに
-                if( is_array($arrCustomer) === true && count($arrCustomer) > 0){
-                    $customer_count = count($arrCustomer);
-                    if( $customer_count != 0 ){
-                        $this->tpl_linemax = $customer_count;
-                    }
-                } else {
-                    $this->tpl_linemax = null;
-                }
-
-                // ページ送りの処理
-                if(isset($_POST['search_page_max'])
-                   && is_numeric($_POST['search_page_max'])) {
-                    $page_max = $_POST['search_page_max'];
-                } else {
-                    $page_max = SEARCH_PMAX;
-                }
-
-                // ページ送りの取得
-                $objNavi = new SC_PageNavi($_POST['search_pageno'], $customer_count, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX);
-                $this->tpl_strnavi = $objNavi->strnavi;      // 表示文字列
-                $startno = $objNavi->start_row;
-
-                // 取得範囲の指定(開始行番号、行数のセット)
-                $objQuery->setLimitOffset($page_max, $startno);
-                // 表示順序
-                $objQuery->setOrder($order);
-                // 検索結果の取得
-                $this->arrCustomer = $objQuery->select($col, $from, $where, $sqlval);
-            }
+        // POSTのモードがsearchなら顧客検索開始
+        switch ($this->getMode()) {
+        case 'search':
+            list($this->tpl_linemax, $this->arrCustomer, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray());
+            $this->arrPagenavi = $this->objNavi->arrPagenavi;
             break;
         default:
             break;
         }
-        $this->arrForm = $arrForm;
         $this->setTemplate($this->tpl_mainpage);
     }
 
@@ -182,23 +112,34 @@
         parent::destroy();
     }
 
-    /* パラメータ情報の初期化 */
-    function lfInitParam() {
-        $this->objFormParam->addParam("顧客ID", "search_customer_id", INT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
-        $this->objFormParam->addParam("顧客名(姓)", "search_name01", STEXT_LEN, "aKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
-        $this->objFormParam->addParam("顧客名(名)", "search_name02", STEXT_LEN, "aKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
-        $this->objFormParam->addParam("顧客名(カナ)", 'search_kana01', STEXT_LEN, "CKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
-        $this->objFormParam->addParam("顧客名(カナ/名)", 'search_kana02', STEXT_LEN, "CKV", array("NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+    /**
+     * パラメーター情報の初期化
+     *
+     * @param array $objFormParam フォームパラメータークラス
+     * @return void
+     */
+    function lfInitParam(&$objFormParam) {
+        SC_Helper_Customer_Ex::sfSetSearchParam($objFormParam);
     }
 
-    /* 入力内容のチェック */
-    function lfCheckError() {
-        // 入力データを渡す。
-        $arrRet =  $this->objFormParam->getHashArray();
-        $objErr = new SC_CheckError($arrRet);
-        $objErr->arrErr = $this->objFormParam->checkError();
+    /**
+     * エラーチェック
+     *
+     * @param array $objFormParam フォームパラメータークラス
+     * @return array エラー配列
+     */
+    function lfCheckError(&$objFormParam) {
+        return SC_Helper_Customer_Ex::sfCheckErrorSearchParam($objFormParam);
+    }
 
-        return $objErr->arrErr;
+    /**
+     * 顧客一覧を検索する処理
+     *
+     * @param array $arrParam 検索パラメーター連想配列
+     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
+     */
+    function lfDoSearch($arrParam) {
+        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam);
     }
 }
 ?>




Svn-src-all メーリングリストの案内