[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}-->
- 姓 <input type="text" name="search_name01" value="<!--{$arrForm.search_name01|h}-->" size="15" class="box15" style="<!--{$arrErr.search_name01|sfGetErrorColor}-->"/>
- 名 <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}-->"/>
- メイ <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 メーリングリストの案内