[Svn-src-all:1306] [version-2_5-dev 20195] #982 ([フロント]商品)リファクタリング開発
kotani
admin @ mail.ec-cube.net
2011年 2月 18日 (金) 16:53:46 JST
Subversion committed to /home/svn/open 20195
http://svn.ec-cube.net/open_trac/changeset/20195
┌────────────────────────────┐
│更新者 : kotani │
│更新日時: 2011-02-18 16:53:46 +0900 (金, 18 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#982 ([フロント]商品)リファクタリング開発
* r20187 のコミットキャンセル
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php
変更: branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php 2011-02-18 06:15:56 UTC (rev 20194)
+++ branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php 2011-02-18 07:53:46 UTC (rev 20195)
@@ -94,43 +94,53 @@
* @return void
*/
function action() {
- $this->arrForm = $_GET;
- //modeの取得
- $this->mode = $this->getMode();
-
- //表示条件の取得
- $this->arrSearchData = array(
- 'category_id' => $this->lfGetCategoryId($this->arrForm['category_id']),
- 'maker_id'=>$this->arrForm['maker_id'],
- 'name'=>$this->arrForm['name']
- );
- $this->orderby = $this->arrForm['orderby'];
-
- //ページング設定
- $this->tpl_pageno = $this->arrForm['pageno'];
- $this->disp_number = $this->lfGetDisplayNum($this->arrForm['disp_number']);
-
- $objQuery = new SC_Query();//$this->queryにしたい
- $objDb = new SC_Helper_DB_Ex();//$this->helperDBにしたい
+ $this->lfLoadParam();
+ $objQuery = new SC_Query();
+ $objDb = new SC_Helper_DB_Ex();
- // 画面に表示するサブタイトルの設定
- $this->tpl_subtitle = $this->lfGetPageTitle($this->mode,$this->arrSearchData['category_id'],$objDb);
+ // タイトル編集
+ if ($this->mode == 'search') {
+ $this->tpl_subtitle = "検索結果";
+ } elseif ($this->arrSearchData['category_id'] == 0) {
+ $this->tpl_subtitle = "全商品";
+ } else {
+ $arrCat = $objDb->sfGetCat($this->arrSearchData['category_id']);
+ $this->tpl_subtitle = $arrCat['name'];
+ }
- // 画面に表示する検索条件を設定
- $this->arrSearch = $this->lfGetSearchCondition($this->arrSearchData,$objQuery);
- //この辺まではinit()に書いちゃダメなのかな?
-//2011-02-17 ここまでやった
+ $count = $objQuery->count("dtb_best_products", "category_id = ?", array($this->arrSearchData['category_id']));
// 商品一覧の表示処理
- $this->arrProducts = $this->lfGetProductsList($objDb);
+ $this->lfDispProductsList();
- //onloadスクリプトを設定
+ // 検索条件を画面に表示
+ // カテゴリー検索条件
+ if ($this->arrSearchData['category_id'] == 0) {
+ $this->arrSearch['category'] = "指定なし";
+ } else {
+ $arrCat = $objQuery->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?", array($this->arrSearchData['category_id']));
+ $this->arrSearch['category'] = $arrCat;
+ }
+
+ // メーカー検索条件
+ if (strlen($this->arrSearchData['maker_id']) == 0) {
+ $this->arrSearch['maker'] = "指定なし";
+ } else {
+ $this->arrSearch['maker'] = $objQuery->getOne("SELECT name FROM dtb_maker WHERE maker_id = ?", $this->arrSearchData['maker_id']);
+ }
+
+ // 商品名検索条件
+ if (strlen($this->arrSearchData['name']) == 0) {
+ $this->arrSearch['name'] = "指定なし";
+ } else {
+ $this->arrSearch['name'] = $this->arrSearchData['name'];
+ }
+
foreach ($this->arrProducts as $arrProduct) {
$js_fnOnLoad .= "fnSetClassCategories(document.product_form{$arrProduct['product_id']});\n";
- }
+ }
- //カート処理
- if (intval($this->arrForm['product_id']) > 0) {
+ if ($this->inCart) {
// 商品IDの正当性チェック
if (!SC_Utils_Ex::sfIsInt($this->arrForm['product_id']) || !$objDb->sfIsRecord("dtb_products", "product_id", $this->arrForm['product_id'], "del_flg = 0 AND status = 1")) {
SC_Utils_Ex::sfDispSiteError(PRODUCT_NOT_FOUND);
@@ -203,6 +213,7 @@
* @return integer カテゴリID
*/
function lfGetCategoryId($category_id) {
+ $objDb = new SC_Helper_DB_Ex();
// 指定なしの場合、0 を返す
if (
@@ -232,7 +243,8 @@
}
/* 商品一覧の表示 */
- function lfGetProductsList($objDb) {
+ function lfDispProductsList() {
+ $objDb = new SC_Helper_DB_Ex();
$arrval = array();
$arrval_order = array();
$arrval_category = array();
@@ -424,15 +436,26 @@
*
* @return void
*/
- function lfGetDisplayNum($display_number) {
+ function lfLoadParam() {
+ $this->arrForm = $_GET;
+
+ $this->mode = $this->getMode();
+ $this->arrSearchData['category_id'] = $this->lfGetCategoryId($this->arrForm['category_id']);
+ $this->arrSearchData['maker_id'] = $this->arrForm['maker_id'];
+ $this->arrSearchData['name'] = $this->arrForm['name'];
+ $this->orderby = $this->arrForm['orderby'];
// 表示件数
- if (!isset($display_number)
- OR !SC_Utils_Ex::sfIsInt($display_number)
+ if (
+ isset($this->arrForm['disp_number'])
+ && SC_Utils_Ex::sfIsInt($this->arrForm['disp_number'])
) {
+ $this->disp_number = $this->arrForm['disp_number'];
+ } else {
//最小表示件数を選択
- return current(array_keys($this->arrPRODUCTLISTMAX));
+ $this->disp_number = current(array_keys($this->arrPRODUCTLISTMAX));
}
- return $display_number;
+ $this->tpl_pageno = $this->arrForm['pageno'];
+ $this->inCart = strlen($this->arrForm['product_id']) >= 1;
}
/**
@@ -459,46 +482,5 @@
$this->tpl_next_page = $objURL->path . '?' . $objURL->getQueryString();
}
}
-
- /**
- * ページタイトルの設定
- *
- * @return str
- */
- function lfGetPageTitle($mode,$category_id = 0,$objDb){
- if ($mode == 'search') {
- return "検索結果";
- } elseif ($category_id == 0) {
- return "全商品";
- } else {
- $arrCat = $objDb->sfGetCat($category_id);
- return $arrCat['name'];
- }
- return "";
- }
-
- /**
- * 検索条件の設定
- *
- * @return array
- */
- function lfGetSearchCondition($arrSearchData,$objQuery){
- $arrSearch = array('category'=>"指定なし",'maker'=>"指定なし",'name'=>"指定なし");
- // カテゴリー検索条件
- if ($arrSearchData['category_id'] > 0) {
- $arrSearch['category'] = $objQuery->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?", array($arrSearchData['category_id']));
- }
-
- // メーカー検索条件
- if (strlen($arrSearchData['maker_id']) > 0) {
- $arrSearch['maker'] = $objQuery->getOne("SELECT name FROM dtb_maker WHERE maker_id = ?", array($arrSearchData['maker_id']));
- }
-
- // 商品名検索条件
- if (strlen($arrSearchData['name']) > 0) {
- $arrSearch['name'] = $arrSearchData['name'];
- }
- return $arrSearch;
- }
}
?>
Svn-src-all メーリングリストの案内