[Svn-src-all:1298] [version-2_5-dev 20187] refs #982 疑問たらけたけととりあえすコミット
tao
admin @ mail.ec-cube.net
2011年 2月 18日 (金) 07:55:53 JST
Subversion committed to /home/svn/open 20187
http://svn.ec-cube.net/open_trac/changeset/20187
┌────────────────────────────┐
│更新者 : tao │
│更新日時: 2011-02-18 07:55:52 +0900 (金, 18 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
refs #982 疑問たらけたけととりあえすコミット
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-17 12:47:13 UTC (rev 20186)
+++ branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php 2011-02-17 22:55:52 UTC (rev 20187)
@@ -94,53 +94,43 @@
* @return void
*/
function action() {
- $this->lfLoadParam();
- $objQuery = new SC_Query();
- $objDb = new SC_Helper_DB_Ex();
+ $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にしたい
- // タイトル編集
- 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->tpl_subtitle = $this->lfGetPageTitle($this->mode,$this->arrSearchData['category_id'],$objDb);
- $count = $objQuery->count("dtb_best_products", "category_id = ?", array($this->arrSearchData['category_id']));
+ // 画面に表示する検索条件を設定
+ $this->arrSearch = $this->lfGetSearchCondition($this->arrSearchData,$objQuery);
+ //この辺まではinit()に書いちゃダメなのかな?
+//2011-02-17 ここまでやった
// 商品一覧の表示処理
- $this->lfDispProductsList();
+ $this->arrProducts = $this->lfGetProductsList($objDb);
- // 検索条件を画面に表示
- // カテゴリー検索条件
- 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'];
- }
-
+ //onloadスクリプトを設定
foreach ($this->arrProducts as $arrProduct) {
$js_fnOnLoad .= "fnSetClassCategories(document.product_form{$arrProduct['product_id']});\n";
- }
+ }
- if ($this->inCart) {
+ //カート処理
+ if (intval($this->arrForm['product_id']) > 0) {
// 商品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);
@@ -213,7 +203,6 @@
* @return integer カテゴリID
*/
function lfGetCategoryId($category_id) {
- $objDb = new SC_Helper_DB_Ex();
// 指定なしの場合、0 を返す
if (
@@ -243,8 +232,7 @@
}
/* 商品一覧の表示 */
- function lfDispProductsList() {
- $objDb = new SC_Helper_DB_Ex();
+ function lfGetProductsList($objDb) {
$arrval = array();
$arrval_order = array();
$arrval_category = array();
@@ -436,26 +424,15 @@
*
* @return void
*/
- 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'];
+ function lfGetDisplayNum($display_number) {
// 表示件数
- if (
- isset($this->arrForm['disp_number'])
- && SC_Utils_Ex::sfIsInt($this->arrForm['disp_number'])
+ if (!isset($display_number)
+ OR !SC_Utils_Ex::sfIsInt($display_number)
) {
- $this->disp_number = $this->arrForm['disp_number'];
- } else {
//最小表示件数を選択
- $this->disp_number = current(array_keys($this->arrPRODUCTLISTMAX));
+ return current(array_keys($this->arrPRODUCTLISTMAX));
}
- $this->tpl_pageno = $this->arrForm['pageno'];
- $this->inCart = strlen($this->arrForm['product_id']) >= 1;
+ return $display_number;
}
/**
@@ -482,5 +459,46 @@
$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 メーリングリストの案内