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

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


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

Log:
--------------------------------------------------------
#965 (リファクタリング [管理画面]顧客管理)に関する修正 LC_Page_Admin_Customer.php LC_Page_Admin_Customer_Edit.php
#963 (リファクタリング [管理画面]メルマガ管理)の検索処理共通化修正で正常に動くように動作を合わせた。
SC_Helper_Customer_Ex::sfGetSearchData()を追加。
顧客一覧検索系はSC_Customer_Helperに共通機能多数なので利用を。
検索処理の共通化にあわせて LC_Page_Admin_Mail.php側も修正。

#850 (顧客CSV 列追加時にロジックの変更を不要に)の修正
#870 (CSVアップロードにおいて、CSV項目の種類・数を自由に変更出来る機能)に関連した修正
#657 (CSVダウンロードの改善)に関連した修正
#1024 (「顧客検索→編集→完了→続けて登録→検索に戻る」と遷移した場合に検索条件を引き継がない問題)の改修

予定より時間かかった・・・


Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit.tpl
U   branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_complete.tpl
U   branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_confirm.tpl
U   branches/version-2_5-dev/data/Smarty/templates/admin/customer/index.tpl
U   branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php
U   branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php
U   branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php
U   branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php
U   branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
U   branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php
D   branches/version-2_5-dev/html/admin/customer/customer.php

変更: branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit.tpl	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit.tpl	2011-02-20 21:17:20 UTC (rev 20285)
@@ -45,30 +45,35 @@
     <input type="hidden" name="mode" value="search" />
     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
     <!--{foreach from=$arrSearchData key="key" item="item"}-->
-        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "del_mode" && $key ne "edit_customer_id" && $key ne "del_customer_id" && $key ne "csv_mode" && $key ne "job" && $key ne "sex"}--><input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->"><!--{/if}-->
+        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+		  <!--{if is_array($item)}-->
+		    <!--{foreach item=c_item from=$item}-->
+		      <input type="hidden" name="<!--{$key|h}-->[]" value="<!--{$c_item|h}-->" />
+		    <!--{/foreach}-->
+		  <!--{else}-->
+		    <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
+		  <!--{/if}-->
+        <!--{/if}-->
     <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.job key="key" item="item"}-->
-        <input type="hidden" name="job[]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.sex key="key" item="item"}-->
-        <input type="hidden" name="sex[]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
 </form>
 
 <form name="form1" id="form1" method="post" action="?">
     <input type="hidden" name="mode" value="confirm" />
     <input type="hidden" name="customer_id" value="<!--{$arrForm.customer_id|h}-->" />
     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+
     <!-- 検索条件の保持 -->
     <!--{foreach from=$arrSearchData key="key" item="item"}-->
-        <!--{if $key ne "job" && $key ne "sex"}--><input type="hidden" name="search_data[<!--{$key|h}-->]" value="<!--{$item|h}-->"><!--{/if}-->
+        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+		  <!--{if is_array($item)}-->
+		    <!--{foreach item=c_item from=$item}-->
+		      <input type="hidden" name="search_data[<!--{$key|h}-->][]" value="<!--{$c_item|h}-->" />
+		    <!--{/foreach}-->
+		  <!--{else}-->
+		    <input type="hidden" name="search_data[<!--{$key|h}-->]" value="<!--{$item|h}-->" />
+		  <!--{/if}-->
+        <!--{/if}-->
     <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.job key="key" item="item"}-->
-        <input type="hidden" name="search_data[job][]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.sex key="key" item="item"}-->
-        <input type="hidden" name="search_data[sex][]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
 
     <div id="customer" class="contents-main">
         <h2><!--{if $arrForm.customer_id}-->顧客編集<!--{else}-->顧客登録<!--{/if}--></h2>

変更: branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_complete.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_complete.tpl	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_complete.tpl	2011-02-20 21:17:20 UTC (rev 20285)
@@ -37,24 +37,34 @@
     <input type="hidden" name="mode" value="search" />
     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
     <!--{foreach from=$arrSearchData key="key" item="item"}-->
-        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "del_mode" && $key ne "edit_customer_id" && $key ne "del_customer_id" && $key ne "csv_mode" && $key ne "job" && $key ne "sex"}--><input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->"><!--{/if}-->
+        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+		  <!--{if is_array($item)}-->
+		    <!--{foreach item=c_item from=$item}-->
+		      <input type="hidden" name="<!--{$key|h}-->[]" value="<!--{$c_item|h}-->" />
+		    <!--{/foreach}-->
+		  <!--{else}-->
+		    <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
+		  <!--{/if}-->
+        <!--{/if}-->
     <!--{/foreach}-->
+</form>
 
-    <!--{foreach from=$arrSearchData.job key="key" item="item"}-->
-        <input type="hidden" name="job[]" value="<!--{$item}-->" />
+<form name="form1" id="form1" method="post" action="?">
+    <input type="hidden" name="mode" value="complete_return" />
+    <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+    <!-- 検索条件の保持 -->
+    <!--{foreach from=$arrSearchData key="key" item="item"}-->
+        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+		  <!--{if is_array($item)}-->
+		    <!--{foreach item=c_item from=$item}-->
+		      <input type="hidden" name="search_data[<!--{$key|h}-->][]" value="<!--{$c_item|h}-->" />
+		    <!--{/foreach}-->
+		  <!--{else}-->
+		    <input type="hidden" name="search_data[<!--{$key|h}-->]" value="<!--{$item|h}-->" />
+		  <!--{/if}-->
+        <!--{/if}-->
     <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.sex key="key" item="item"}-->
-        <input type="hidden" name="sex[]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
-</form>
 
-<form name="form1" id="form1" method="post" action="?">
-<input type="hidden" name="mode" value="complete" />
-<!--{foreach from=$arrForm key=key item=item}-->
-<!--{if $key ne "mode" && $key ne "subm"}-->
-<input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
-<!--{/if}-->
-<!--{/foreach}-->
 	<div id="complete">
 		<div class="complete-top"></div>
 		<div class="contents">
@@ -65,8 +75,10 @@
 		<div class="btn-area-top"></div>
 		<div class="btn-area">
 			<ul>
-				<li><!--{* TODO *}--><a class="btn-action" href="javascript:;" onclick="return fnReturn();"><span class="btn-prev">検索結果へ戻る</span></a></li>
-				<li><a class="btn-action" href="./edit.php"><span class="btn-next">続けて登録を行う</span></a></li>
+                <!--{if $arrSearchData}-->
+				<li><a class="btn-action" href="javascript:;" onclick="return fnReturn();"><span class="btn-prev">検索結果へ戻る</span></a></li>
+                <!--{/if}-->
+				<li><a class="btn-action" href="javascript:;" onclick="fnFormModeSubmit('form1', 'complete_return', '', ''); return false;"><span class="btn-next">続けて登録を行う</span></a></li>
 			</ul>
 		</div>
 		<div class="btn-area-bottom"></div>

変更: branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_confirm.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_confirm.tpl	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/customer/edit_confirm.tpl	2011-02-20 21:17:20 UTC (rev 20285)
@@ -37,20 +37,24 @@
     <input type="hidden" name="mode" value="complete" />
     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
     <!--{foreach from=$arrForm key=key item=item}-->
-        <!--{if $key ne "mode" && $key ne "subm"}-->
+        <!--{if $key ne "mode" && $key ne "subm" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
             <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
         <!--{/if}-->
     <!--{/foreach}-->
+
     <!-- 検索条件の保持 -->
     <!--{foreach from=$arrSearchData key="key" item="item"}-->
-        <!--{if $key ne "job" && $key ne "sex"}--><input type="hidden" name="search_data[<!--{$key|h}-->]" value="<!--{$item|h}-->"><!--{/if}-->
+        <!--{if $key ne "customer_id" && $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+		  <!--{if is_array($item)}-->
+		    <!--{foreach item=c_item from=$item}-->
+		      <input type="hidden" name="search_data[<!--{$key|h}-->][]" value="<!--{$c_item|h}-->" />
+		    <!--{/foreach}-->
+		  <!--{else}-->
+		    <input type="hidden" name="search_data[<!--{$key|h}-->]" value="<!--{$item|h}-->" />
+		  <!--{/if}-->
+        <!--{/if}-->
     <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.job key="key" item="item"}-->
-        <input type="hidden" name="search_data[job][]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
-    <!--{foreach from=$arrSearchData.sex key="key" item="item"}-->
-        <input type="hidden" name="search_data[sex][]" value="<!--{$item}-->" />
-    <!--{/foreach}-->
+
     <div id="customer" class="contents-main">
         <h2>顧客編集</h2>
         <table class="form">
@@ -108,7 +112,7 @@
             </tr>
             <tr>
                 <th>パスワード<span class="attention"> *</span></th>
-                <td><!--{$arrForm.password}--></td>
+                <td><!--{$arrForm.password|h}--></td>
             </tr>
             <tr>
                 <th>パスワードを忘れたときのヒント<span class="attention"> *</span></th>

変更: branches/version-2_5-dev/data/Smarty/templates/admin/customer/index.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/customer/index.tpl	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/customer/index.tpl	2011-02-20 21:17:20 UTC (rev 20285)
@@ -30,9 +30,9 @@
   }
 
   function fnCSVDownload(pageno) {
-    document.form1['csv_mode'].value = 'csv';
+    document.form1.mode.value = 'csv';
     document.form1.submit();
-    document.form1['csv_mode'].value = '';
+    document.form1.mode.value = '';
     return false;
   }
 
@@ -82,12 +82,12 @@
     <!--{include file="`$smarty.const.TEMPLATE_ADMIN_REALDIR`/adminparts/form_customer_search.tpl"}-->
     <tr>
       <th>会員状態</th>
-      <td colspan="3"><!--{html_checkboxes name="status" options=$arrStatus separator="&nbsp;" selected=$arrForm.status}--></td>
+      <td colspan="3"><!--{html_checkboxes name="search_status" options=$arrStatus separator="&nbsp;" selected=$arrForm.search_status.value}--></td>
     </tr>
   </table>
   <div class="btn">
     <p class="page_rows">検索結果表示件数
-    <select name="page_rows">
+    <select name="search_page_rows">
       <!--{html_options options=$arrPageRows selected=$arrForm.page_rows}-->
     </select> 件</p>
     <div class="btn-area">
@@ -97,30 +97,25 @@
     </div>
   </div>
 </form>
-
 <!--{if count($arrErr) == 0 and ($smarty.post.mode == 'search' or $smarty.post.mode == 'delete' or $smarty.post.mode == 'resend_mail')}-->
 
 <!--★★検索結果一覧★★-->
 <form name="form1" id="form1" method="post" action="?">
-<!--{foreach from=$smarty.post key="key" item="item"}-->
-<!--{if $key ne "mode" && $key ne "del_mode" && $key ne "edit_customer_id" && $key ne "del_customer_id" && $key ne "search_pageno" && $key ne "csv_mode" && $key ne "job" && $key ne "sex" && $key ne "status"}--><input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->"><!--{/if}-->
-<!--{/foreach}-->
-<!--{foreach from=$smarty.post.job key="key" item="item"}-->
-<input type="hidden" name="job[]" value=<!--{$item}-->>
-<!--{/foreach}-->
-<!--{foreach from=$smarty.post.sex key="key" item="item"}-->
-<input type="hidden" name="sex[]" value=<!--{$item}-->>
-<!--{/foreach}-->
-<!--{foreach from=$smarty.post.status key="key" item="item"}-->
-<input type="hidden" name="status[]" value=<!--{$item}-->>
-<!--{/foreach}-->
 <input type="hidden" name="mode" value="search" />
-<input type="hidden" name="del_mode" value="" />
+<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
 <input type="hidden" name="edit_customer_id" value="" />
-<input type="hidden" name="del_customer_id" value="" />
 <input type="hidden" name="search_pageno" value="<!--{$smarty.post.search_pageno|h}-->" />
-<input type="hidden" name="csv_mode" value="" />
-<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
+<!--{foreach from=$smarty.post key="key" item="item"}-->
+  <!--{if $key ne "mode" && $key ne "edit_customer_id" && $key ne $smarty.const.TRANSACTION_ID_NAME}-->
+    <!--{if is_array($item)}-->
+      <!--{foreach item=c_item from=$item}-->
+        <input type="hidden" name="<!--{$key|h}-->[]" value="<!--{$c_item|h}-->" />
+      <!--{/foreach}-->
+    <!--{else}-->
+      <input type="hidden" name="<!--{$key|h}-->" value="<!--{$item|h}-->" />
+    <!--{/if}-->
+  <!--{/if}-->
+<!--{/foreach}-->
 
   <h2>検索結果一覧</h2>
   <div class="btn">

変更: branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -227,16 +227,16 @@
             $sql = $objQuery->getSql($cols, $objProduct->prdclsSQL($inner_where),$where);
         }else if($csv_id == '2') {
             // 顧客の場合
-            $sql = "SELECT " . $cols . " FROM dtb_customer " . $where . " " . $order;
+            $sql = "SELECT " . $cols . " FROM dtb_customer " . $where;
             
         }
         // 固有処理ここまで
-        
+
         // ヘッダ構築
         $header = $this->sfArrayToCSV($arrOutput['disp_name']);
         $header = mb_convert_encoding($header, 'SJIS-Win');
         $header .= "\r\n";
-        
+
         //テンポラリファイル作成
         // TODO: パフォーマンス向上には、ストリームを使うようにすると良い
         //  環境要件がバージョン5.1以上になったら使うように変えても良いかと
@@ -244,7 +244,6 @@
         $tmp_filename = tempnam(CSV_TEMP_REALDIR, $this->arrSubnavi[$csv_id] . '_csv');
         $this->fpOutput = fopen($tmp_filename, "w+");
         fwrite($this->fpOutput, $header);
-
         $objQuery->doCallbackAll(array(&$this, 'cbOutputCSV'), $sql, $arrVal);
 
         fclose($this->fpOutput);
@@ -398,7 +397,6 @@
      * @return string 行末の ',' を CRLF に変換した文字列
      */
     function replaceLineSuffix($line) {
-//        return mb_ereg_replace(",$", "\r\n", $line);  
         return preg_replace('/,$/',"\r\n",$line);
     }
 
@@ -408,7 +406,6 @@
      * 参考: http://jp.php.net/fputcsv
      */
     function sfArrayToCsv($fields, $delimiter = ',', $enclosure = '"', $arrayDelimiter = '|') {
-        
         if( strlen($delimiter) != 1 ) {
             trigger_error('delimiter must be a single character', E_USER_WARNING);
             return "";

変更: branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -503,7 +503,6 @@
         $objFormParam->addParam('購入商品コード', 'search_buy_product_code', STEXT_LEN, 'KVa', array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
         $objFormParam->addParam('購入商品名', 'search_buy_product_name', STEXT_LEN, 'KVa', array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
         $objFormParam->addParam('カテゴリ', 'search_category_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK"));
-        $objFormParam->addParam('編集対象顧客ID', 'search_edit_customer_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK"));
         $objFormParam->addParam('性別', 'search_sex', INT_LEN, "n", array("MAX_LENGTH_CHECK"));
         $objFormParam->addParam('会員状態', 'search_status', INT_LEN, "n", array("MAX_LENGTH_CHECK"));
         $objFormParam->addParam('職業', 'search_job', INT_LEN, "n", array("MAX_LENGTH_CHECK"));
@@ -550,4 +549,40 @@
         }
         return $arrErr;
     }
+    
+    /**
+     * 顧客一覧検索をする処理(ページング処理付き、管理画面用共通処理)
+     *
+     * @param array $arrParam 検索パラメーター連想配列
+     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
+     */
+    function sfGetSearchData($arrParam) {
+        $objQuery =& SC_Query::getSingletonInstance();
+        $objSelect = new SC_CustomerList($arrParam, "customer");
+        $page_rows = $arrParam['search_page_rows'];
+        if(SC_Utils_Ex::sfIsInt($page_rows)) {
+            $page_max = $page_rows;
+        }else{
+            $page_max = SEARCH_PMAX;
+        }
+        $disp_pageno = $arrParam['search_pageno'];
+        if($disp_pageno == 0) {
+            $disp_pageno = 1;
+        }
+        $offset = intval($page_max) * (intval($disp_pageno) - 1);
+        $objSelect->setLimitOffset($page_max, $offset);
+        
+        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal);
+
+        // 該当全体件数の取得
+        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal);
+
+        // ページ送りの取得
+        $objNavi = new SC_PageNavi($arrParam['search_pageno'],
+                                    $linemax,
+                                    $page_max,
+                                    "fnCustomerPage",
+                                    NAVI_PMAX);
+        return array($linemax, $arrData, $objNavi);
+    }
 }

変更: branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -175,9 +175,10 @@
      * を呼んでおく必要がある.
      *
      * @access protected
+     * @param boolean $is_unset TODO: nanasessさんが作り変えているらしいですが暫定対応で
      * @return boolean トランザクショントークンが有効な場合 true
      */
-    function isValidToken() {
+    function isValidToken($is_unset = true) {
 
         $checkToken = "";
 
@@ -197,7 +198,9 @@
             $ret = true;
         }
 
-        unset($_SESSION[TRANSACTION_ID_NAME]);
+        if ($is_unset) {
+            unset($_SESSION[TRANSACTION_ID_NAME]);
+        }
         return $ret;
     }
 }

変更: branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -93,8 +93,9 @@
         SC_Utils_Ex::sfIsSuccess(new SC_Session());
 
         // 不正アクセスチェック 
+        // FIXME: nanasessさんが作り変えて共通化しているようなので暫定で isValidToken(false)
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
-            if (!SC_Helper_Session_Ex::isValidToken()) {
+            if (!SC_Helper_Session_Ex::isValidToken(false)) {
                 SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
             }
         }
@@ -108,9 +109,10 @@
         $objFormParam->setParam($_POST);
         $objFormParam->convParam();
         // パラメーター読み込み
-        $this->arrForm = $this->lfGetFormParam($objFormParam);
+        $this->arrForm = $objFormParam->getFormParamList();
         // 検索ワードの引き継ぎ
-        $this->arrHidden = $this->lfGetSearchWords($objFormParam);
+        $this->arrHidden = $objFormParam->getSearchArray();
+
         // 入力パラメーターチェック
         $this->arrErr = $this->lfCheckError($objFormParam);
         if(!SC_Utils_Ex::isBlank($this->arrErr)) {
@@ -121,20 +123,20 @@
         switch ($this->getMode()) {
         case 'delete':
             $this->is_delete = $this->lfDoDeleteCustomer($objFormParam->getValue('edit_customer_id'));
-            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm);
+            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray());
             $this->arrPagenavi = $this->objNavi->arrPagenavi;
             break;
         case 'resend_mail':
             $this->is_resendmail = $this->lfDoResendMail($objFormParam->getValue('edit_customer_id'));
-            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm);
+            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray());
             $this->arrPagenavi = $this->objNavi->arrPagenavi;
             break;
         case 'search':
-            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm);
+            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray());
             $this->arrPagenavi = $this->objNavi->arrPagenavi;
             break;
         case 'csv':
-            $this->lfDoCSV($this->arrForm);
+            $this->lfDoCSV($objFormParam->getHashArray());
             exit;
             break;
         default:
@@ -159,6 +161,7 @@
      */
     function lfInitParam(&$objFormParam) {
         SC_Helper_Customer_Ex::sfSetSearchParam($objFormParam);
+        $objFormParam->addParam('編集対象顧客ID', 'edit_customer_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK"));
     }
 
     /**
@@ -215,31 +218,7 @@
      * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
      */
     function lfDoSearch($arrParam) {
-        $objQuery =& SC_Query::getSingletonInstance();
-        $objSelect = new SC_CustomerList($arrParam, "customer");
-        $page_rows = $arrParam['page_rows'];
-        if(SC_Utils_Ex::sfIsInt($page_rows)) {
-            $page_max = $page_rows;
-        }else{
-            $page_max = SEARCH_PMAX;
-        }
-        $disp_pageno = $arrParam['search_pageno'];
-        if($disp_pageno == 0) {
-            $disp_pageno = 1;
-        }
-        $offset = $page_max * ($disp_pageno - 1);
-        $objSelect->setLimitOffset($page_max, $offset);
-        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal);
-        
-        // 該当全体件数の取得
-        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal);
-        // ページ送りの取得
-        $objNavi = new SC_PageNavi($arrParam['search_pageno'],
-                                    $linemax,
-                                    $page_max,
-                                    "fnCustomerPage",
-                                    NAVI_PMAX);
-        return array($linemax, $arrData, $objNavi);
+        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam);
     }
 
     /**
@@ -251,48 +230,11 @@
     function lfDoCSV($arrParam) {
         $objSelect = new SC_CustomerList($arrParam, "customer");
         $order = "update_date DESC, customer_id DESC";
+        
         require_once(CLASS_EX_REALDIR . "helper_extends/SC_Helper_CSV_Ex.php");
         $objCSV = new SC_Helper_CSV_Ex();
         list($where, $arrVal) = $objSelect->getWhere();
-        $objCSV->sfDownloadCsv('2', $where, $arrVal);
+        return $objCSV->sfDownloadCsv('2', $where, $arrVal, $order, true);
     }
-
-    /**
-     * 検索パラメーター引継ぎ用展開
-     *
-     * @param array $objFormParam フォームパラメータークラス
-     * @return array 引き継ぎ用連想配列
-     */
-    function lfGetSearchWords(&$objFormParam) {
-        $arrData = $objFormParam->getSearchArray("search_");
-        $arrData['sex'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('sex'));
-        $arrData['status'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('status'));
-        $arrData['job'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('job'));
-    }
-
-    /**
-     * 表示用パラメーター値取得処理
-     *
-     * @param array $objFormParam フォームパラメータークラス
-     * @return array 表示用連想配列
-     */
-    function lfGetFormParam(&$objFormParam) {
-        $arrForm = $objFormParam->getHashArray();
-        // 配列形式のデータの展開処理
-        $val_sex = $objFormParam->getValue('sex');
-        if(!is_array($val_sex) and !SC_Utils_Ex::isBlank($val_sex)) {
-            $arrForm['sex'] = explode("-", $val_sex);
-        }
-        $val_status = $objFormParam->getValue('status');
-        if(!is_array($val_status) and !SC_Utils_Ex::isBlank($val_status)) {
-            $arrForm['status'] = explode("-", $val_status);
-        }
-        $val_job = $objFormParam->getValue('job');
-        if(!is_array($val_job) and !SC_Utils_Ex::isBlank($val_job)) {
-            $arrForm['job'] = explode("-", $val_job);
-        }
-        return $arrForm;
-    }
-
 }
 ?>

変更: branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -110,7 +110,7 @@
             $this->lfInitSearchParam($objFormSearchParam);
             $objFormSearchParam->setParam($_REQUEST);
             $this->arrErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
-            $this->arrSearchData = $objFormSearchParam->getHashArray();
+            $this->arrSearchData = $objFormSearchParam->getSearchArray();
             if(!SC_Utils_Ex::isBlank($this->arrErr)) {
                 return;
             }
@@ -134,7 +134,7 @@
             $this->lfInitSearchParam($objFormSearchParam);
             $objFormSearchParam->setParam($objFormParam->getValue("search_data"));
             $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
-            $this->arrSearchData = $objFormSearchParam->getHashArray();
+            $this->arrSearchData = $objFormSearchParam->getSearchArray();
             if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) {
                 return;
             }
@@ -153,7 +153,7 @@
             $this->lfInitSearchParam($objFormSearchParam);
             $objFormSearchParam->setParam($objFormParam->getValue("search_data"));
             $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
-            $this->arrSearchData = $objFormSearchParam->getHashArray();
+            $this->arrSearchData = $objFormSearchParam->getSearchArray();
             if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) {
                 return;
             }
@@ -177,13 +177,24 @@
             $this->lfInitSearchParam($objFormSearchParam);
             $objFormSearchParam->setParam($objFormParam->getValue("search_data"));
             $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
-            $this->arrSearchData = $objFormSearchParam->getHashArray();
+            $this->arrSearchData = $objFormSearchParam->getSearchArray();
             if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) {
                 return;
             }
             $this->lfRegistData($objFormParam);
             $this->tpl_mainpage = 'customer/edit_complete.tpl';
             break;
+        case 'complete_return':
+            //検索引き継ぎ用パラメーター処理
+            $this->lfInitParam($objFormParam);
+            $objFormParam->setParam($_POST);
+            $this->lfInitSearchParam($objFormSearchParam);
+            $objFormSearchParam->setParam($objFormParam->getValue("search_data"));
+            $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
+            $this->arrSearchData = $objFormSearchParam->getSearchArray();
+            if(!SC_Utils_Ex::isBlank($this->arrSearchErr)) {
+                return;
+            }
         default:
             break;
         }

変更: branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -347,33 +347,7 @@
      * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
      */
     function lfDoSearch($arrParam) {
-        $objQuery =& SC_Query::getSingletonInstance();
-        $objSelect = new SC_CustomerList($arrParam, "customer");
-        $page_rows = $arrParam['search_page_rows'];
-        if(SC_Utils_Ex::sfIsInt($page_rows)) {
-            $page_max = $page_rows;
-        }else{
-            $page_max = SEARCH_PMAX;
-        }
-        $disp_pageno = $arrParam['search_pageno'];
-        if($disp_pageno == 0) {
-            $disp_pageno = 1;
-        }
-        $offset = intval($page_max) * (intval($disp_pageno) - 1);
-        $objSelect->setLimitOffset($page_max, $offset);
-        
-        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal);
-
-        // 該当全体件数の取得
-        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal);
-
-        // ページ送りの取得
-        $objNavi = new SC_PageNavi($arrParam['search_pageno'],
-                                    $linemax,
-                                    $page_max,
-                                    "fnCustomerPage",
-                                    NAVI_PMAX);
-        return array($linemax, $arrData, $objNavi);
+        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam);
     }
     
     // 現在時刻の取得(配信時間デフォルト値)

削除: branches/version-2_5-dev/html/admin/customer/customer.php
===================================================================
--- branches/version-2_5-dev/html/admin/customer/customer.php	2011-02-20 17:51:58 UTC (rev 20284)
+++ branches/version-2_5-dev/html/admin/customer/customer.php	2011-02-20 21:17:20 UTC (rev 20285)
@@ -1,35 +0,0 @@
-<?php
-/*
- * This file is part of EC-CUBE
- *
- * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
- *
- * http://www.lockon.co.jp/
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-// {{{ requires
-require_once '../require.php';
-require_once CLASS_EX_REALDIR . 'page_extends/admin/customer/LC_Page_Admin_Customer_Customer_Ex.php';
-
-// }}}
-// {{{ generate page
-
-$objPage = new LC_Page_Admin_Customer_Customer_Ex();
-register_shutdown_function(array($objPage, 'destroy'));
-$objPage->init();
-$objPage->process();
-?>




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