Ignore:
Timestamp:
2011/02/20 19:53:19 (15 years ago)
Author:
naka
Message:

レビュー管理リファクタリング

Location:
branches/version-2_5-dev/data/class/pages/admin/products
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php

    r20194 r20262  
    5656        $this->arrRECOMMEND = $masterData->getMasterData("mtb_recommend"); 
    5757        $this->arrSex = $masterData->getMasterData("mtb_sex"); 
    58     } 
    59  
    60     /** 
    61      * Page のプロセス. 
    62      * 
    63      * @return void 
    64      */ 
    65     function process() { 
    66         $this->action(); 
    67         $this->sendResponse(); 
    68     } 
    69  
    70     /** 
    71      * Page のアクション. 
    72      * 
    73      * @return void 
    74      */ 
    75     function action() { 
    76         $objSess = new SC_Session(); 
     58         
    7759        $objDate = new SC_Date(); 
    78         $objQuery =& SC_Query::getSingletonInstance(); 
    79  
    80         // 認証可否の判定 
    81         SC_Utils_Ex::sfIsSuccess($objSess); 
    82  
    8360        // 登録・更新検索開始年 
    8461        $objDate->setStartYear(RELEASE_YEAR); 
     
    9370        $this->arrEndMonth = $objDate->getMonth(); 
    9471        $this->arrEndDay = $objDate->getDay(); 
     72    } 
     73 
     74    /** 
     75     * Page のプロセス. 
     76     * 
     77     * @return void 
     78     */ 
     79    function process() { 
     80        $this->action(); 
     81        $this->sendResponse(); 
     82    } 
     83 
     84    /** 
     85     * Page のアクション. 
     86     * 
     87     * @return void 
     88     */ 
     89    function action() { 
     90        $objSess = new SC_Session(); 
     91 
     92        $objQuery =& SC_Query::getSingletonInstance(); 
     93 
     94        // 認証可否の判定 
     95        SC_Utils_Ex::sfIsSuccess($objSess); 
    9596 
    9697        // パラメータ管理クラス 
    97         $this->objFormParam = new SC_FormParam(); 
    98         // パラメータ情報の初期化 
    99         $this->lfInitParam(); 
    100         $this->objFormParam->setParam($_POST); 
    101         $arrForm = $this->objFormParam->getHashArray(); 
    102  
    103         // hidden の設定 
    104         $this->arrHidden = $this->lfSetHidden($arrForm); 
     98        $objFormParam = new SC_FormParam(); 
     99        $this->lfInitParam($objFormParam); 
     100        $objFormParam->setParam($_POST); 
     101        $this->arrForm = $objFormParam->getHashArray(); 
     102        $this->arrHidden = $this->lfSetHidden($this->arrForm); 
    105103 
    106104        switch ($this->getMode()) { 
     
    110108        case 'csv': 
    111109            // エラーチェック 
    112             $this->arrErr = $this->lfCheckError(); 
     110            $this->arrErr = $this->lfCheckError($objFormParam); 
    113111            if (!$this->arrErr){ 
    114112                // 検索条件を取得 
    115                 list($where, $arrval) = $this->lfGetWhere($arrForm); 
     113                list($where, $arrval) = $this->lfGetWhere($this->arrForm); 
    116114            } 
    117115 
     
    123121 
    124122            // 検索条件を取得 
    125             $this->arrReview = $this->lfGetRevire($arrForm, $where, $arrval); 
     123            $this->arrReview = $this->lfGetReview($this->arrForm, $where, $arrval); 
    126124            break; 
    127125        default: 
    128126            break; 
    129127        } 
    130  
    131         $this->arrForm = $arrForm; 
    132128    } 
    133129 
     
    142138 
    143139    // 入力エラーチェック 
    144     function lfCheckError() { 
     140    function lfCheckError(&$objFormParam) { 
    145141        // 入力データを渡す。 
    146         $arrRet =  $this->objFormParam->getHashArray(); 
     142        $arrRet =  $objFormParam->getHashArray(); 
    147143        $objErr = new SC_CheckError($arrRet); 
    148         $objErr->arrErr = $this->objFormParam->checkError(); 
     144        $objErr->arrErr = $objFormParam->checkError(); 
    149145 
    150146        switch ($this->getMode()){ 
     
    184180                    } 
    185181                    break; 
    186  
    187182                default: 
    188183                    $arrHidden[$key] = $val; 
     
    195190 
    196191    /* パラメータ情報の初期化 */ 
    197     function lfInitParam() { 
    198         $this->objFormParam->addParam("投稿者名", "search_reviewer_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    199         $this->objFormParam->addParam("投稿者URL", "search_reviewer_url", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    200         $this->objFormParam->addParam("商品名", "search_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    201         $this->objFormParam->addParam("商品コード", "search_product_code", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK")); 
    202         $this->objFormParam->addParam("性別", "search_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
    203         $this->objFormParam->addParam("おすすめレベル", "search_recommend_level", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
    204         $this->objFormParam->addParam("投稿年", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    205         $this->objFormParam->addParam("投稿月", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    206         $this->objFormParam->addParam("投稿日", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    207         $this->objFormParam->addParam("投稿年", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    208         $this->objFormParam->addParam("投稿月", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    209         $this->objFormParam->addParam("投稿日", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    210         $this->objFormParam->addParam("最大表示件数", "search_page_max", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
    211         $this->objFormParam->addParam("ページ番号件数", "search_pageno", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
    212         $this->objFormParam->addParam("レビューID", "review_id", INT_LEN, "n", array("MAX_LENGTH_CHECK")); 
     192    function lfInitParam(&$objFormParam) { 
     193        $objFormParam->addParam("投稿者名", "search_reviewer_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false); 
     194        $objFormParam->addParam("投稿者URL", "search_reviewer_url", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false); 
     195        $objFormParam->addParam("商品名", "search_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false); 
     196        $objFormParam->addParam("商品コード", "search_product_code", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false); 
     197        $objFormParam->addParam("性別", "search_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false); 
     198        $objFormParam->addParam("おすすめレベル", "search_recommend_level", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false); 
     199        $objFormParam->addParam("投稿年", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     200        $objFormParam->addParam("投稿月", "search_startmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     201        $objFormParam->addParam("投稿日", "search_startday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     202        $objFormParam->addParam("投稿年", "search_endyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     203        $objFormParam->addParam("投稿月", "search_endmonth", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     204        $objFormParam->addParam("投稿日", "search_endday", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false); 
     205        $objFormParam->addParam("最大表示件数", "search_page_max", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false); 
     206        $objFormParam->addParam("ページ番号件数", "search_pageno", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false); 
     207        $objFormParam->addParam("レビューID", "review_id", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false); 
    213208    } 
    214209 
     
    313308     * レビューの検索結果取得 
    314309     */ 
    315     function lfGetRevire($arrForm, $where, $arrval) { 
     310    function lfGetReview($arrForm, $where, $arrval) { 
    316311        $objQuery =& SC_Query::getSingletonInstance(); 
    317312 
  • branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php

    r20194 r20262  
    2323 
    2424// {{{ requires 
    25 require_once(CLASS_REALDIR . "pages/admin/LC_Page_Admin.php"); 
     25require_once(CLASS_REALDIR . "pages/admin/products/LC_Page_Admin_Products_Review.php"); 
    2626 
    2727/** 
     
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Admin_Products_ReviewEdit extends LC_Page_Admin { 
     34class LC_Page_Admin_Products_ReviewEdit extends LC_Page_Admin_Products_Review { 
    3535 
    3636    // }}} 
     
    4848        $this->tpl_mainno = 'products'; 
    4949        $this->tpl_subno = 'review'; 
     50        // 両方選択可能 
     51        $this->tpl_status_change = true; 
    5052 
    5153        $masterData = new SC_DB_MasterData_Ex(); 
     
    7375        $objSess = new SC_Session(); 
    7476        $this->objQuery =& SC_Query::getSingletonInstance(); 
    75  
    7677        // 認証可否の判定 
    7778        SC_Utils_Ex::sfIsSuccess($objSess); 
    7879 
    79         // 検索ワードの引継ぎ 
    80         foreach ($_POST as $key => $val){ 
    81             if (ereg("^search_", $key)){ 
    82                 $this->arrSearchHidden[$key] = $val; 
    83             } 
    84         } 
    85  
    86         // 両方選択可能 
    87         $this->tpl_status_change = true; 
    88  
     80        // パラメータ情報の初期化 
     81        $objFormParam = new SC_FormParam(); 
     82        $this->lfInitParam($objFormParam); 
     83        $objFormParam->setParam($_POST); 
     84        $objFormParam->convParam(); 
     85        // 検索ワードの引き継ぎ 
     86        $this->arrSearchHidden = $objFormParam->getSearchArray(); 
     87        $this->arrReview = $objFormParam->getHashArray(); 
     88                 
    8989        switch ($this->getMode()) { 
    9090            // 登録 
    9191            case 'complete': 
    92                 // 取得文字列の変換用カラム 
    93                 $arrRegistColumn = array ( 
    94                     array("column" => "status"), 
    95                     array("column" => "recommend_level"), 
    96                     array("column" => "title", "convert" => "KVa"), 
    97                     array("column" => "comment", "convert" => "KVa"), 
    98                     array("column" => "reviewer_name", "convert" => "KVa"), 
    99                     array("column" => "reviewer_url", "convert" => "KVa"), 
    100                     array("column" => "sex", "convert" => "n") 
    101                 ); 
    102  
    103                 // フォーム値の変換 
    104                 $arrReview = $this->lfConvertParam($_POST, $arrRegistColumn); 
    105                 $this->arrErr = $this->lfCheckError($arrReview); 
    106  
    107                 // エラー有り 
    108                 if ($this->arrErr) { 
    109                     // 入力内容を引き継ぐ 
    110                     $this->arrReview = $arrReview; 
    111                 } else { 
     92                $this->arrErr = $this->lfCheckError($objFormParam); 
    11293                // エラー無し 
     94                if (!$this->arrErr) { 
    11395                    // レビュー情報の更新 
    114                     $this->lfRegistReviewData($arrReview, $arrRegistColumn); 
    115  
     96                    $this->lfRegistReviewData($objFormParam); 
    11697                    // レビュー情報のDB取得 
    117                     $this->arrReview = $this->lfGetReviewData($arrReview['review_id']); 
    118  
     98                    $this->arrReview = $this->lfGetReviewData($this->arrReview['review_id']); 
    11999                    $this->tpl_onload = "alert('登録が完了しました。');"; 
    120100                } 
    121101                break; 
    122  
    123102            default: 
    124103                // レビュー情報のDB取得 
    125                 $this->arrReview = $this->lfGetReviewData($_POST['review_id']); 
     104                $this->arrReview = $this->lfGetReviewData($this->arrReview['review_id']); 
    126105                break; 
    127106        } 
     
    138117 
    139118    /** 
    140      * 入力エラーチェック 
     119     * パラメータ情報の初期化を行う. 
    141120     * 
     121     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     122     * @return void 
    142123     */ 
    143     function lfCheckError($arrReview) { 
    144         $objErr = new SC_CheckError($arrReview); 
    145         $objErr->doFunc(array("おすすめレベル", "recommend_level"), array("SELECT_CHECK")); 
    146         $objErr->doFunc(array("タイトル", "title", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    147         $objErr->doFunc(array("コメント", "comment", LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    148         $objErr->doFunc(array("投稿者名", "reviewer_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    149         $objErr->doFunc(array("投稿者URL", "reviewer_url", URL_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    150         $objErr->doFunc(array("性別", "sex", STEXT_LEN), array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    151         return $objErr->arrErr; 
    152     } 
     124    function lfInitParam(&$objFormParam) { 
     125        // 検索条件のパラメータを初期化 
     126        parent::lfInitParam($objFormParam); 
     127        $objFormParam->addParam("レビューID", "review_id"); 
     128        $objFormParam->addParam("商品名", "name", "", "", array(), "", false); 
     129        $objFormParam->addParam("投稿日", "create_date", "", "", array(), "", false); 
     130         
     131        // 登録情報 
     132        $objFormParam->addParam("レビュー表示", "status", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     133        $objFormParam->addParam("投稿者名", "reviewer_name", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     134        $objFormParam->addParam("投稿者URL", "reviewer_url", URL_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     135        $objFormParam->addParam("性別", "sex", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     136        $objFormParam->addParam("おすすめレベル", "recommend_level", INT_LEN, "n", array("SELECT_CHECK")); 
     137        $objFormParam->addParam("タイトル", "title", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     138        $objFormParam->addParam("コメント", "comment", LTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     139    }     
    153140 
    154     /** 
    155      * 取得文字列の変換 
     141    /** 
     142     * フォーム入力パラメーターエラーチェック 
    156143     * 
     144     * @param array $objFormParam フォームパラメータークラス 
     145     * @return array エラー配列 
    157146     */ 
    158     function lfConvertParam($array, $arrRegistColumn) { 
    159         /* 
    160          *  文字列の変換 
    161          *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
    162          *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
    163          *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します 
    164          *  n :  「全角」数字を「半角(ハンカク)」に変換 
    165          *  a :  全角英数字を半角英数字に変換する 
    166          */ 
    167         // カラム名とコンバート情報 
    168         foreach ($arrRegistColumn as $data) { 
    169             $arrConvList[ $data["column"] ] = isset($data["convert"]) 
    170                 ? $data["convert"] : ""; 
     147    function lfCheckError(&$objFormParam) { 
     148        $arrErr = $objFormParam->checkError(); 
     149        if (!SC_Utils_Ex::isBlank($arrErr)) { 
     150            return $arrErr; 
    171151        } 
    172  
    173         // 文字変換 
    174         foreach ($arrConvList as $key => $val) { 
    175             // POSTされてきた値のみ変換する。 
    176             if(strlen(($array[$key])) > 0) { 
    177                 $array[$key] = mb_convert_kana($array[$key] ,$val); 
    178             } 
    179         } 
    180         return $array; 
    181152    } 
    182153 
     
    194165            SC_Utils_Ex::sfDispError(""); 
    195166        } 
    196  
    197167        return $arrReview[0]; 
    198168    } 
     
    202172     * 
    203173     */ 
    204     function lfRegistReviewData($arrReview, $arrRegistColumn){ 
    205         foreach ($arrRegistColumn as $data) { 
    206             $arrRegist[ $data["column"] ] = $arrReview[ $data["column"] ]; 
    207         } 
    208         $arrRegist['update_date'] = 'now()'; 
    209  
    210         // 更新実行 
    211         $this->objQuery->update("dtb_review", $arrRegist, "review_id = ?", array($arrReview['review_id'])); 
     174    function lfRegistReviewData(&$objFormParam){ 
     175        $arrValues = $objFormParam->getDbArray(); 
     176        $arrValues['update_date'] = 'now()'; 
     177        $this->objQuery->update("dtb_review", $arrValues, "review_id = ?", array($arrValues['review_id'])); 
    212178    } 
    213179} 
Note: See TracChangeset for help on using the changeset viewer.