[Svn-src-all:1418] [version-2_5-dev 20309] レビュー管理リファクタリング

naka admin @ mail.ec-cube.net
2011年 2月 21日 (月) 20:46:15 JST


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

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

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

変更: branches/version-2_5-dev/data/Smarty/templates/admin/products/review_edit.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/products/review_edit.tpl	2011-02-21 10:40:35 UTC (rev 20308)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/products/review_edit.tpl	2011-02-21 11:46:15 UTC (rev 20309)
@@ -23,7 +23,7 @@
 *}-->
 <form name="form1" id="form1" method="post" action="?">
     <input type="hidden" name="mode" value="complete" />
-    <input type="hidden" name="review_id" value="<!--{$arrReview.review_id|h}-->" />
+    <input type="hidden" name="review_id" value="<!--{$arrForm.review_id|h}-->" />
     <!--{foreach key=key item=item from=$arrSearchHidden}-->
         <input type="hidden" name="<!--{$key}-->" value="<!--{$item|h}-->" />
     <!--{/foreach}-->
@@ -34,40 +34,40 @@
         <table>
             <tr>
                 <th>商品名</th>
-                <td><!--{$arrReview.name|h}-->
-                <input type="hidden" name="name" value="<!--{$arrReview.name}-->">
+                <td><!--{$arrForm.name|h}-->
+                <input type="hidden" name="name" value="<!--{$arrForm.name|h}-->">
                 </td>
             </tr>
             <tr>
                 <th>投稿日</th>
-                <td><!--{$arrReview.create_date|sfDispDBDate}-->
-                <input type="hidden" name="create_date" value="<!--{$arrReview.create_date}-->">
+                <td><!--{$arrForm.create_date|sfDispDBDate}-->
+                <input type="hidden" name="create_date" value="<!--{$arrForm.create_date|h}-->">
                 </td>
             </tr>
             <tr>
                 <th>レビュー表示</th>
                 <td>
                     <!--{if $arrErr.status}--><span class="attention"><!--{$arrErr.status}--></span><!--{/if}-->
-                    <input type="radio" name="status" value="2" <!--{if $arrReview.status eq 2}-->checked<!--{/if}-->>非表示<!--{if $arrReview.status eq 2 && !$tpl_status_change}--><!--{else}--><input type="radio" name="status" value="1" <!--{if $arrReview.status eq 1}-->checked<!--{/if}-->>表示<!--{/if}-->
+                    <input type="radio" name="status" value="2" <!--{if $arrForm.status eq 2}-->checked<!--{/if}-->>非表示<!--{if $arrForm.status eq 2 && !$tpl_status_change}--><!--{else}--><input type="radio" name="status" value="1" <!--{if $arrForm.status eq 1}-->checked<!--{/if}-->>表示<!--{/if}-->
                 </td>
             </tr>
             <tr>
                 <th>投稿者名 <span class="attention">*</span></th>
                 <td>
                     <!--{if $arrErr.reviewer_name}--><span class="attention"><!--{$arrErr.reviewer_name}--></span><!--{/if}-->
-                    <input type="text" class="box60" name="reviewer_name" value="<!--{$arrReview.reviewer_name|h}-->" style="<!--{$arrErr.reviewer_name|sfGetErrorColor}-->" size=30>
+                    <input type="text" class="box60" name="reviewer_name" value="<!--{$arrForm.reviewer_name|h}-->" style="<!--{$arrErr.reviewer_name|sfGetErrorColor}-->" size=30>
                 </td>
             </tr>
             <tr>
                 <th>投稿者URL</th>
                 <td>
                     <!--{if $arrErr.reviewer_url}--><span class="attention"><!--{$arrErr.reviewer_url}--></span><!--{/if}-->
-                    <input type="text" class="box60" name="reviewer_url" maxlength="<!--{$smarty.const.URL_LEN}-->" value="<!--{$arrReview.reviewer_url|h}-->" style="<!--{$arrErr.reviewer_url|sfGetErrorColor}-->" size=30>
+                    <input type="text" class="box60" name="reviewer_url" maxlength="<!--{$smarty.const.URL_LEN}-->" value="<!--{$arrForm.reviewer_url|h}-->" style="<!--{$arrErr.reviewer_url|sfGetErrorColor}-->" size=30>
                 </td>
             </tr>
             <tr>
                 <th>性別</th>
-                <td><!--{html_radios_ex name="sex" options=$arrSex selected=$arrReview.sex}--></td>
+                <td><!--{html_radios_ex name="sex" options=$arrSex selected=$arrForm.sex}--></td>
             </tr>
             <tr>
                 <th>おすすめレベル <span class="attention">*</span></th>
@@ -78,7 +78,7 @@
                     <!--{/if}-->
                     <select name="<!--{$key}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" >
                     <option value="" selected="selected">選択してください</option>
-                    <!--{html_options options=$arrRECOMMEND selected=$arrReview[$key]}-->
+                    <!--{html_options options=$arrRECOMMEND selected=$arrForm[$key]}-->
                     </select>
                 </td>
             </tr>
@@ -86,14 +86,14 @@
                 <th>タイトル <span class="attention">*</span></th>
                 <td>
                     <!--{if $arrErr.title}--><span class="attention"><!--{$arrErr.title}--></span><!--{/if}-->
-                    <input type="text" class="box60" name="title" value="<!--{$arrReview.title|h}-->" style="<!--{$arrErr.title|sfGetErrorColor}-->" size=30><span class="attention">
+                    <input type="text" class="box60" name="title" value="<!--{$arrForm.title|h}-->" style="<!--{$arrErr.title|sfGetErrorColor}-->" size=30><span class="attention">
                 </td>
             </tr>
             <tr>
                 <th>コメント <span class="attention">*</span></th>
                 <td>
                     <!--{if $arrErr.comment}--><span class="attention"><!--{$arrErr.comment}--></span><!--{/if}-->
-                    <textarea name="comment" rows="20" cols="60" class="area60" wrap="soft" style="<!--{$arrErr.comment|sfGetErrorColor}-->" ><!--{$arrReview.comment|h}--></textarea>
+                    <textarea name="comment" rows="20" cols="60" class="area60" wrap="soft" style="<!--{$arrErr.comment|sfGetErrorColor}-->" ><!--{$arrForm.comment|h}--></textarea>
                 </td>
             </tr>
         </table>

変更: branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php	2011-02-21 10:40:35 UTC (rev 20308)
+++ branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Review.php	2011-02-21 11:46:15 UTC (rev 20309)
@@ -55,7 +55,7 @@
         $this->arrPageMax = $masterData->getMasterData("mtb_page_max");
         $this->arrRECOMMEND = $masterData->getMasterData("mtb_recommend");
         $this->arrSex = $masterData->getMasterData("mtb_sex");
-        
+
         $objDate = new SC_Date();
         // 登録・更新検索開始年
         $objDate->setStartYear(RELEASE_YEAR);
@@ -88,9 +88,6 @@
      */
     function action() {
         $objSess = new SC_Session();
-
-        $objQuery =& SC_Query::getSingletonInstance();
-
         // 認証可否の判定
         SC_Utils_Ex::sfIsSuccess($objSess);
 
@@ -98,6 +95,10 @@
         $objFormParam = new SC_FormParam();
         $this->lfInitParam($objFormParam);
         $objFormParam->setParam($_POST);
+        $objFormParam->convParam();
+        // URLを小文字に変換
+        $objFormParam->toLower('search_reviewer_url');
+
         $this->arrForm = $objFormParam->getHashArray();
         $this->arrHidden = $this->lfSetHidden($this->arrForm);
 
@@ -136,7 +137,12 @@
         parent::destroy();
     }
 
-    // 入力エラーチェック
+    /**
+     * 入力内容のチェックを行う.
+     *
+     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+     * @return void
+     */
     function lfCheckError(&$objFormParam) {
         // 入力データを渡す。
         $arrRet =  $objFormParam->getHashArray();
@@ -160,14 +166,24 @@
         return $objErr->arrErr;
     }
 
-    //レビューの削除
+    /**
+     * 商品レビューの削除
+     *
+     * @param integer $review_id 商品レビューのID
+     * @return void
+     */
     function lfDeleteReview($review_id) {
         $objQuery =& SC_Query::getSingletonInstance();
         $sqlval['del_flg'] = 1;
         $objQuery->update("dtb_review", $sqlval, "review_id = ?", array($review_id));
     }
 
-    // 検索ワードの引き継ぎ
+    /**
+     * hidden情報の作成
+     *
+     * @param array $arrForm フォームデータ
+     * @return array hidden情報
+     */
     function lfSetHidden($arrForm) {
         $arrHidden = array();
         foreach ($arrForm AS $key=>$val) {
@@ -188,12 +204,17 @@
         return $arrHidden;
     }
 
-    /* パラメータ情報の初期化 */
+    /**
+     * パラメータ情報の初期化を行う.
+     *
+     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+     * @return void
+     */
     function lfInitParam(&$objFormParam) {
-        $objFormParam->addParam("投稿者名", "search_reviewer_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false);
-        $objFormParam->addParam("投稿者URL", "search_reviewer_url", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false);
-        $objFormParam->addParam("商品名", "search_name", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false);
-        $objFormParam->addParam("商品コード", "search_product_code", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"),"",false);
+        $objFormParam->addParam("投稿者名", "search_reviewer_name", STEXT_LEN, "KVas", array("MAX_LENGTH_CHECK"),"",false);
+        $objFormParam->addParam("投稿者URL", "search_reviewer_url", STEXT_LEN, "KVas", array("MAX_LENGTH_CHECK"),"",false);
+        $objFormParam->addParam("商品名", "search_name", STEXT_LEN, "KVas", array("MAX_LENGTH_CHECK"),"",false);
+        $objFormParam->addParam("商品コード", "search_product_code", STEXT_LEN, "KVas", array("MAX_LENGTH_CHECK"),"",false);
         $objFormParam->addParam("性別", "search_sex", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false);
         $objFormParam->addParam("おすすめレベル", "search_recommend_level", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false);
         $objFormParam->addParam("投稿年", "search_startyear", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"),"",false);
@@ -207,7 +228,13 @@
         $objFormParam->addParam("レビューID", "review_id", INT_LEN, "n", array("MAX_LENGTH_CHECK"),"",false);
     }
 
-    // CSV ファイル出力実行
+    /**
+     * CSV ファイル出力実行
+     *
+     * @param string $where WHERE文
+     * @param array $arrval WHERE文の判定値
+     * @return void
+     */
     function lfCsv($where, $arrval) {
         $objCSV = new SC_Helper_CSV_Ex();
         // CSV出力タイトル行の作成
@@ -219,7 +246,12 @@
     }
 
 
-    // 検索条件の取得
+    /**
+     * WHERE文の作成
+     *
+     * @param array $arrForm フォームデータ
+     * @return array WHERE文、判定値
+     */
     function lfGetWhere($arrForm) {
         //削除されていない商品を検索
         $where = "A.del_flg = 0 AND B.del_flg = 0";
@@ -229,30 +261,26 @@
 
             switch ($key){
             case 'search_reviewer_name':
-                $val = mb_convert_kana($val, 's');
                 $val = preg_replace("/ /", "%", $val);
-                $where.= " AND reviewer_name ILIKE ? ";
+                $where.= " AND reviewer_name LIKE ? ";
                 $arrval[] = "%$val%";
                 break;
 
             case 'search_reviewer_url':
-                $val = mb_convert_kana($val, 's');
                 $val = preg_replace("/ /", "%", $val);
-                $where.= " AND reviewer_url ILIKE ? ";
+                $where.= " AND reviewer_url LIKE ? ";
                 $arrval[] = "%$val%";
                 break;
 
             case 'search_name':
-                $val = mb_convert_kana($val, 's');
                 $val = preg_replace("/ /", "%", $val);
-                $where.= " AND name ILIKE ? ";
+                $where.= " AND name LIKE ? ";
                 $arrval[] = "%$val%";
                 break;
 
             case 'search_product_code':
-                $val = mb_convert_kana($val, 's');
                 $val = preg_replace("/ /", "%", $val);
-                $where.= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )";
+                $where.= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? )";
                 $arrval[] = "%$val%";
                 break;
 
@@ -304,8 +332,13 @@
         return array($where, $arrval);
     }
 
-    /*
-     * レビューの検索結果取得
+    /**
+     * レビュー検索結果の取得
+     *
+     * @param array $arrForm フォームデータ
+     * @param string $where WHERE文
+     * @param array $arrval WHERE文の判定値
+     * @return array レビュー一覧
      */
     function lfGetReview($arrForm, $where, $arrval) {
         $objQuery =& SC_Query::getSingletonInstance();

変更: branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php	2011-02-21 10:40:35 UTC (rev 20308)
+++ branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ReviewEdit.php	2011-02-21 11:46:15 UTC (rev 20309)
@@ -73,7 +73,6 @@
      */
     function action() {
         $objSess = new SC_Session();
-        $this->objQuery =& SC_Query::getSingletonInstance();
         // 認証可否の判定
         SC_Utils_Ex::sfIsSuccess($objSess);
 
@@ -84,8 +83,8 @@
         $objFormParam->convParam();
         // 検索ワードの引き継ぎ
         $this->arrSearchHidden = $objFormParam->getSearchArray();
-        $this->arrReview = $objFormParam->getHashArray();
-                
+        $this->arrForm = $objFormParam->getHashArray();
+
         switch ($this->getMode()) {
             // 登録
             case 'complete':
@@ -93,15 +92,15 @@
                 // エラー無し
                 if (!$this->arrErr) {
                     // レビュー情報の更新
-                    $this->lfRegistReviewData($objFormParam);
+                    $this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam);
                     // レビュー情報のDB取得
-                    $this->arrReview = $this->lfGetReviewData($this->arrReview['review_id']);
+                    $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']);
                     $this->tpl_onload = "alert('登録が完了しました。');";
                 }
                 break;
             default:
                 // レビュー情報のDB取得
-                $this->arrReview = $this->lfGetReviewData($this->arrReview['review_id']);
+                $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']);
                 break;
         }
     }
@@ -122,30 +121,30 @@
      * @return void
      */
     function lfInitParam(&$objFormParam) {
-    	// 検索条件のパラメータを初期化
+        // 検索条件のパラメータを初期化
         parent::lfInitParam($objFormParam);
-    	$objFormParam->addParam("レビューID", "review_id");
-    	$objFormParam->addParam("商品名", "name", "", "", array(), "", false);
-    	$objFormParam->addParam("投稿日", "create_date", "", "", array(), "", false);
-        
-    	// 登録情報
+        $objFormParam->addParam("レビューID", "review_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+        $objFormParam->addParam("商品名", "name", "", "", array(), "", false);
+        $objFormParam->addParam("投稿日", "create_date", "", "", array(), "", false);
+
+        // 登録情報
         $objFormParam->addParam("レビュー表示", "status", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
         $objFormParam->addParam("投稿者名", "reviewer_name", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
         $objFormParam->addParam("投稿者URL", "reviewer_url", URL_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
-		$objFormParam->addParam("性別", "sex", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
-		$objFormParam->addParam("おすすめレベル", "recommend_level", INT_LEN, "n", array("SELECT_CHECK"));
-	    $objFormParam->addParam("タイトル", "title", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+        $objFormParam->addParam("性別", "sex", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+        $objFormParam->addParam("おすすめレベル", "recommend_level", INT_LEN, "n", array("SELECT_CHECK"));
+        $objFormParam->addParam("タイトル", "title", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
         $objFormParam->addParam("コメント", "comment", LTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
-	}    
+    }
 
-	/**
+    /**
      * フォーム入力パラメーターエラーチェック
      *
      * @param array $objFormParam フォームパラメータークラス
      * @return array エラー配列
      */
     function lfCheckError(&$objFormParam) {
-		$arrErr = $objFormParam->checkError();
+        $arrErr = $objFormParam->checkError();
         if (!SC_Utils_Ex::isBlank($arrErr)) {
             return $arrErr;
         }
@@ -154,13 +153,16 @@
     /**
      * レビュー情報のDB取得
      *
+     * @param integer $review_id レビューID
+     * @return array レビュー情報
      */
     function lfGetReviewData($review_id){
+        $objQuery =& SC_Query::getSingletonInstance();
         $select="review_id, A.product_id, reviewer_name, sex, recommend_level, ";
         $select.="reviewer_url, title, comment, A.status, A.create_date, A.update_date, name";
         $from = "dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id ";
         $where = "A.del_flg = 0 AND B.del_flg = 0 AND review_id = ? ";
-        $arrReview = $this->objQuery->select($select, $from, $where, array($review_id));
+        $arrReview = $objQuery->select($select, $from, $where, array($review_id));
         if (empty($arrReview)) {
             SC_Utils_Ex::sfDispError("");
         }
@@ -170,11 +172,15 @@
     /**
      * レビュー情報の更新
      *
+     * @param integer $review_id レビューID
+     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+     * @return void
      */
-    function lfRegistReviewData(&$objFormParam){
-    	$arrValues = $objFormParam->getDbArray();
+    function lfRegistReviewData($review_id, &$objFormParam){
+        $objQuery =& SC_Query::getSingletonInstance();
+        $arrValues = $objFormParam->getDbArray();
         $arrValues['update_date'] = 'now()';
-        $this->objQuery->update("dtb_review", $arrValues, "review_id = ?", array($arrValues['review_id']));
+        $objQuery->update("dtb_review", $arrValues, "review_id = ?", array($review_id));
     }
 }
 ?>




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