Ignore:
Timestamp:
2011/02/21 06:17:20 (15 years ago)
Author:
AMUAMU
Message:

#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 (「顧客検索→編集→完了→続けて登録→検索に戻る」と遷移した場合に検索条件を引き継がない問題)の改修

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

Location:
branches/version-2_5-dev/data/class
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php

    r20280 r20285  
    228228        }else if($csv_id == '2') { 
    229229            // 顧客の場合 
    230             $sql = "SELECT " . $cols . " FROM dtb_customer " . $where . " " . $order; 
     230            $sql = "SELECT " . $cols . " FROM dtb_customer " . $where; 
    231231             
    232232        } 
    233233        // 固有処理ここまで 
    234          
     234 
    235235        // ヘッダ構築 
    236236        $header = $this->sfArrayToCSV($arrOutput['disp_name']); 
    237237        $header = mb_convert_encoding($header, 'SJIS-Win'); 
    238238        $header .= "\r\n"; 
    239          
     239 
    240240        //テンポラリファイル作成 
    241241        // TODO: パフォーマンス向上には、ストリームを使うようにすると良い 
     
    245245        $this->fpOutput = fopen($tmp_filename, "w+"); 
    246246        fwrite($this->fpOutput, $header); 
    247  
    248247        $objQuery->doCallbackAll(array(&$this, 'cbOutputCSV'), $sql, $arrVal); 
    249248 
     
    399398     */ 
    400399    function replaceLineSuffix($line) { 
    401 //        return mb_ereg_replace(",$", "\r\n", $line);   
    402400        return preg_replace('/,$/',"\r\n",$line); 
    403401    } 
     
    409407     */ 
    410408    function sfArrayToCsv($fields, $delimiter = ',', $enclosure = '"', $arrayDelimiter = '|') { 
    411          
    412409        if( strlen($delimiter) != 1 ) { 
    413410            trigger_error('delimiter must be a single character', E_USER_WARNING); 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php

    r20281 r20285  
    504504        $objFormParam->addParam('購入商品名', 'search_buy_product_name', STEXT_LEN, 'KVa', array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    505505        $objFormParam->addParam('カテゴリ', 'search_category_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK")); 
    506         $objFormParam->addParam('編集対象顧客ID', 'search_edit_customer_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK")); 
    507506        $objFormParam->addParam('性別', 'search_sex', INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
    508507        $objFormParam->addParam('会員状態', 'search_status', INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
     
    551550        return $arrErr; 
    552551    } 
     552     
     553    /** 
     554     * 顧客一覧検索をする処理(ページング処理付き、管理画面用共通処理) 
     555     * 
     556     * @param array $arrParam 検索パラメーター連想配列 
     557     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト) 
     558     */ 
     559    function sfGetSearchData($arrParam) { 
     560        $objQuery =& SC_Query::getSingletonInstance(); 
     561        $objSelect = new SC_CustomerList($arrParam, "customer"); 
     562        $page_rows = $arrParam['search_page_rows']; 
     563        if(SC_Utils_Ex::sfIsInt($page_rows)) { 
     564            $page_max = $page_rows; 
     565        }else{ 
     566            $page_max = SEARCH_PMAX; 
     567        } 
     568        $disp_pageno = $arrParam['search_pageno']; 
     569        if($disp_pageno == 0) { 
     570            $disp_pageno = 1; 
     571        } 
     572        $offset = intval($page_max) * (intval($disp_pageno) - 1); 
     573        $objSelect->setLimitOffset($page_max, $offset); 
     574         
     575        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal); 
     576 
     577        // 該当全体件数の取得 
     578        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal); 
     579 
     580        // ページ送りの取得 
     581        $objNavi = new SC_PageNavi($arrParam['search_pageno'], 
     582                                    $linemax, 
     583                                    $page_max, 
     584                                    "fnCustomerPage", 
     585                                    NAVI_PMAX); 
     586        return array($linemax, $arrData, $objNavi); 
     587    } 
    553588} 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Session.php

    r20116 r20285  
    176176     * 
    177177     * @access protected 
     178     * @param boolean $is_unset TODO: nanasessさんが作り変えているらしいですが暫定対応で 
    178179     * @return boolean トランザクショントークンが有効な場合 true 
    179180     */ 
    180     function isValidToken() { 
     181    function isValidToken($is_unset = true) { 
    181182 
    182183        $checkToken = ""; 
     
    198199        } 
    199200 
    200         unset($_SESSION[TRANSACTION_ID_NAME]); 
     201        if ($is_unset) { 
     202            unset($_SESSION[TRANSACTION_ID_NAME]); 
     203        } 
    201204        return $ret; 
    202205    } 
  • branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer.php

    r20232 r20285  
    9494 
    9595        // 不正アクセスチェック  
     96        // FIXME: nanasessさんが作り変えて共通化しているようなので暫定で isValidToken(false) 
    9697        if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    97             if (!SC_Helper_Session_Ex::isValidToken()) { 
     98            if (!SC_Helper_Session_Ex::isValidToken(false)) { 
    9899                SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR); 
    99100            } 
     
    109110        $objFormParam->convParam(); 
    110111        // パラメーター読み込み 
    111         $this->arrForm = $this->lfGetFormParam($objFormParam); 
     112        $this->arrForm = $objFormParam->getFormParamList(); 
    112113        // 検索ワードの引き継ぎ 
    113         $this->arrHidden = $this->lfGetSearchWords($objFormParam); 
     114        $this->arrHidden = $objFormParam->getSearchArray(); 
     115 
    114116        // 入力パラメーターチェック 
    115117        $this->arrErr = $this->lfCheckError($objFormParam); 
     
    122124        case 'delete': 
    123125            $this->is_delete = $this->lfDoDeleteCustomer($objFormParam->getValue('edit_customer_id')); 
    124             list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm); 
     126            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray()); 
    125127            $this->arrPagenavi = $this->objNavi->arrPagenavi; 
    126128            break; 
    127129        case 'resend_mail': 
    128130            $this->is_resendmail = $this->lfDoResendMail($objFormParam->getValue('edit_customer_id')); 
    129             list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm); 
     131            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray()); 
    130132            $this->arrPagenavi = $this->objNavi->arrPagenavi; 
    131133            break; 
    132134        case 'search': 
    133             list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($this->arrForm); 
     135            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray()); 
    134136            $this->arrPagenavi = $this->objNavi->arrPagenavi; 
    135137            break; 
    136138        case 'csv': 
    137             $this->lfDoCSV($this->arrForm); 
     139            $this->lfDoCSV($objFormParam->getHashArray()); 
    138140            exit; 
    139141            break; 
     
    160162    function lfInitParam(&$objFormParam) { 
    161163        SC_Helper_Customer_Ex::sfSetSearchParam($objFormParam); 
     164        $objFormParam->addParam('編集対象顧客ID', 'edit_customer_id', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK")); 
    162165    } 
    163166 
     
    216219     */ 
    217220    function lfDoSearch($arrParam) { 
    218         $objQuery =& SC_Query::getSingletonInstance(); 
    219         $objSelect = new SC_CustomerList($arrParam, "customer"); 
    220         $page_rows = $arrParam['page_rows']; 
    221         if(SC_Utils_Ex::sfIsInt($page_rows)) { 
    222             $page_max = $page_rows; 
    223         }else{ 
    224             $page_max = SEARCH_PMAX; 
    225         } 
    226         $disp_pageno = $arrParam['search_pageno']; 
    227         if($disp_pageno == 0) { 
    228             $disp_pageno = 1; 
    229         } 
    230         $offset = $page_max * ($disp_pageno - 1); 
    231         $objSelect->setLimitOffset($page_max, $offset); 
    232         $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal); 
    233          
    234         // 該当全体件数の取得 
    235         $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal); 
    236         // ページ送りの取得 
    237         $objNavi = new SC_PageNavi($arrParam['search_pageno'], 
    238                                     $linemax, 
    239                                     $page_max, 
    240                                     "fnCustomerPage", 
    241                                     NAVI_PMAX); 
    242         return array($linemax, $arrData, $objNavi); 
     221        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam); 
    243222    } 
    244223 
     
    252231        $objSelect = new SC_CustomerList($arrParam, "customer"); 
    253232        $order = "update_date DESC, customer_id DESC"; 
     233         
    254234        require_once(CLASS_EX_REALDIR . "helper_extends/SC_Helper_CSV_Ex.php"); 
    255235        $objCSV = new SC_Helper_CSV_Ex(); 
    256236        list($where, $arrVal) = $objSelect->getWhere(); 
    257         $objCSV->sfDownloadCsv('2', $where, $arrVal); 
    258     } 
    259  
    260     /** 
    261      * 検索パラメーター引継ぎ用展開 
    262      * 
    263      * @param array $objFormParam フォームパラメータークラス 
    264      * @return array 引き継ぎ用連想配列 
    265      */ 
    266     function lfGetSearchWords(&$objFormParam) { 
    267         $arrData = $objFormParam->getSearchArray("search_"); 
    268         $arrData['sex'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('sex')); 
    269         $arrData['status'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('status')); 
    270         $arrData['job'] = SC_Utils_Ex::sfMergeParamCheckBoxes($objFormParam->getValue('job')); 
    271     } 
    272  
    273     /** 
    274      * 表示用パラメーター値取得処理 
    275      * 
    276      * @param array $objFormParam フォームパラメータークラス 
    277      * @return array 表示用連想配列 
    278      */ 
    279     function lfGetFormParam(&$objFormParam) { 
    280         $arrForm = $objFormParam->getHashArray(); 
    281         // 配列形式のデータの展開処理 
    282         $val_sex = $objFormParam->getValue('sex'); 
    283         if(!is_array($val_sex) and !SC_Utils_Ex::isBlank($val_sex)) { 
    284             $arrForm['sex'] = explode("-", $val_sex); 
    285         } 
    286         $val_status = $objFormParam->getValue('status'); 
    287         if(!is_array($val_status) and !SC_Utils_Ex::isBlank($val_status)) { 
    288             $arrForm['status'] = explode("-", $val_status); 
    289         } 
    290         $val_job = $objFormParam->getValue('job'); 
    291         if(!is_array($val_job) and !SC_Utils_Ex::isBlank($val_job)) { 
    292             $arrForm['job'] = explode("-", $val_job); 
    293         } 
    294         return $arrForm; 
    295     } 
    296  
     237        return $objCSV->sfDownloadCsv('2', $where, $arrVal, $order, true); 
     238    } 
    297239} 
    298240?> 
  • branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php

    r20261 r20285  
    111111            $objFormSearchParam->setParam($_REQUEST); 
    112112            $this->arrErr = $this->lfCheckErrorSearchParam($objFormSearchParam); 
    113             $this->arrSearchData = $objFormSearchParam->getHashArray(); 
     113            $this->arrSearchData = $objFormSearchParam->getSearchArray(); 
    114114            if(!SC_Utils_Ex::isBlank($this->arrErr)) { 
    115115                return; 
     
    135135            $objFormSearchParam->setParam($objFormParam->getValue("search_data")); 
    136136            $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam); 
    137             $this->arrSearchData = $objFormSearchParam->getHashArray(); 
     137            $this->arrSearchData = $objFormSearchParam->getSearchArray(); 
    138138            if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) { 
    139139                return; 
     
    154154            $objFormSearchParam->setParam($objFormParam->getValue("search_data")); 
    155155            $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam); 
    156             $this->arrSearchData = $objFormSearchParam->getHashArray(); 
     156            $this->arrSearchData = $objFormSearchParam->getSearchArray(); 
    157157            if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) { 
    158158                return; 
     
    178178            $objFormSearchParam->setParam($objFormParam->getValue("search_data")); 
    179179            $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam); 
    180             $this->arrSearchData = $objFormSearchParam->getHashArray(); 
     180            $this->arrSearchData = $objFormSearchParam->getSearchArray(); 
    181181            if(!SC_Utils_Ex::isBlank($this->arrErr) or !SC_Utils_Ex::isBlank($this->arrSearchErr)) { 
    182182                return; 
     
    185185            $this->tpl_mainpage = 'customer/edit_complete.tpl'; 
    186186            break; 
     187        case 'complete_return': 
     188            //検索引き継ぎ用パラメーター処理 
     189            $this->lfInitParam($objFormParam); 
     190            $objFormParam->setParam($_POST); 
     191            $this->lfInitSearchParam($objFormSearchParam); 
     192            $objFormSearchParam->setParam($objFormParam->getValue("search_data")); 
     193            $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam); 
     194            $this->arrSearchData = $objFormSearchParam->getSearchArray(); 
     195            if(!SC_Utils_Ex::isBlank($this->arrSearchErr)) { 
     196                return; 
     197            } 
    187198        default: 
    188199            break; 
  • branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php

    r20283 r20285  
    348348     */ 
    349349    function lfDoSearch($arrParam) { 
    350         $objQuery =& SC_Query::getSingletonInstance(); 
    351         $objSelect = new SC_CustomerList($arrParam, "customer"); 
    352         $page_rows = $arrParam['search_page_rows']; 
    353         if(SC_Utils_Ex::sfIsInt($page_rows)) { 
    354             $page_max = $page_rows; 
    355         }else{ 
    356             $page_max = SEARCH_PMAX; 
    357         } 
    358         $disp_pageno = $arrParam['search_pageno']; 
    359         if($disp_pageno == 0) { 
    360             $disp_pageno = 1; 
    361         } 
    362         $offset = intval($page_max) * (intval($disp_pageno) - 1); 
    363         $objSelect->setLimitOffset($page_max, $offset); 
    364          
    365         $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal); 
    366  
    367         // 該当全体件数の取得 
    368         $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal); 
    369  
    370         // ページ送りの取得 
    371         $objNavi = new SC_PageNavi($arrParam['search_pageno'], 
    372                                     $linemax, 
    373                                     $page_max, 
    374                                     "fnCustomerPage", 
    375                                     NAVI_PMAX); 
    376         return array($linemax, $arrData, $objNavi); 
     350        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam); 
    377351    } 
    378352     
Note: See TracChangeset for help on using the changeset viewer.