[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 メーリングリストの案内