Changeset 18389


Ignore:
Timestamp:
2009/11/20 10:49:47 (11 years ago)
Author:
kajiwara
Message:

#524 分対応。不必要なソースコードの削除

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_4/data/class/pages/products/LC_Page_Products_List.php

    r18388 r18389  
    548548    } 
    549549 
    550     /* 商品一覧の表示 */ 
    551     function lfDispProductsList2($category_id, $name, $disp_num, $orderby) { 
    552  
    553         $objQuery = new SC_Query(); 
    554         $objDb = new SC_Helper_DB_Ex(); 
    555         $this->tpl_pageno = defined("MOBILE_SITE") ? @$_GET['pageno'] : @$_POST['pageno']; 
    556  
    557         $arrval = array(); 
    558         $arrval_order = array(); 
    559         $arrval_category = array(); 
    560  
    561         // カテゴリからのWHERE文字列取得 
    562         if ( $category_id ) { 
    563             list($tmp_where, $arrval_category) = $objDb->sfGetCatWhere($category_id); 
    564             if (strlen($tmp_where) >= 1) { 
    565                 $where_category = "AND $tmp_where"; 
    566             } 
    567         } 
    568  
    569         // 商品検索条件の作成(未削除、表示) 
    570         $where = "del_flg = 0 AND status = 1 "; 
    571  
    572         // 在庫無し商品の非表示 
    573         if (NOSTOCK_HIDDEN === true) { 
    574             $where .= ' AND (allcls.stock_max >= 1 OR allcls.stock_unlimited_max = 1)'; 
    575         } 
    576  
    577         if (strlen($where_category) >= 1) { 
    578             $where.= " $where_category"; 
    579             $arrval = array_merge($arrval, $arrval_category); 
    580         } 
    581  
    582         // 商品名をwhere文に 
    583         $name = ereg_replace(",", "", $name);// XXX 
    584         // 全角スペースを半角スペースに変換 
    585         $name = str_replace(' ', ' ', $name); 
    586         // スペースでキーワードを分割 
    587         $names = preg_split("/ +/", $name); 
    588         // 分割したキーワードを一つずつwhere文に追加 
    589         foreach ($names as $val) { 
    590             if ( strlen($val) > 0 ){ 
    591                 $where .= " AND ( name ILIKE ? OR comment3 ILIKE ?) "; 
    592                 $ret = SC_Utils_Ex::sfManualEscape($val); 
    593                 $arrval[] = "%$ret%"; 
    594                 $arrval[] = "%$ret%"; 
    595             } 
    596         } 
    597  
    598         // 行数の取得 
    599         $linemax = count($objQuery->getAll("SELECT DISTINCT product_id " 
    600                                          . "FROM vw_products_allclass AS allcls " 
    601                                          . (!empty($where) ? " WHERE " . $where 
    602                                                            : ""), $arrval)); 
    603  
    604         $this->tpl_linemax = $linemax;   // 何件が該当しました。表示用 
    605  
    606         // ページ送りの取得 
    607         $this->objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, $disp_num, "fnNaviPage", NAVI_PMAX); 
    608  
    609         $strnavi = $this->objNavi->strnavi; 
    610         $strnavi = str_replace('onclick="fnNaviPage', 'onclick="form1.mode.value=\''.'\'; fnNaviPage', $strnavi); 
    611         // 表示文字列 
    612         $this->tpl_strnavi = empty($strnavi) ? " " : $strnavi; 
    613         $startno = $this->objNavi->start_row;                 // 開始行 
    614  
    615         // ▼商品詳細取得 
    616         $col = <<< __EOS__ 
    617              product_id 
    618             ,product_code_min 
    619             ,product_code_max 
    620             ,name 
    621             ,comment1 
    622             ,comment2 
    623             ,comment3 
    624             ,main_list_comment 
    625             ,main_image 
    626             ,main_list_image 
    627             ,price01_min 
    628             ,price01_max 
    629             ,price02_min 
    630             ,price02_max 
    631             ,stock_min 
    632             ,stock_max 
    633             ,stock_unlimited_min 
    634             ,stock_unlimited_max 
    635             ,point_rate 
    636             ,sale_limit 
    637             ,deliv_date_id 
    638             ,deliv_fee 
    639             ,status 
    640             ,product_flag 
    641             ,del_flg 
    642 __EOS__; 
    643         //$from = "vw_products_allclass AS allcls"; 
    644         $from = "vw_products_allclass_detail AS alldtl"; 
    645  
    646         // WHERE 句 
    647         $where = '0=0'; 
    648         if (is_array($arrProduct_id) && !empty($arrProduct_id)) { 
    649             $where .= ' AND product_id IN (' . implode(',', $arrProduct_id) . ')'; 
    650         } 
    651  
    652         //表示順序 
    653         switch($orderby) { 
    654  
    655             //販売価格順 
    656             case 'price': 
    657                 $order = "price02_min, product_id"; 
    658                 break; 
    659  
    660             //新着順 
    661             case 'date': 
    662                 $order = "create_date DESC, product_id"; 
    663                 break; 
    664  
    665             default: 
    666                 $order = <<< __EOS__ 
    667                     ( 
    668                         SELECT 
    669                              T3.rank 
    670                         FROM 
    671                             dtb_product_categories T2 
    672                             JOIN dtb_category T3 
    673                                 USING (category_id) 
    674                         WHERE T2.product_id = alldtl.product_id 
    675                             $where_category 
    676                         ORDER BY T3.rank DESC, T2.rank DESC 
    677                         LIMIT 1 
    678                     ) DESC 
    679                     ,( 
    680                         SELECT 
    681                             T2.rank 
    682                         FROM 
    683                             dtb_product_categories T2 
    684                             JOIN dtb_category T3 
    685                                 USING (category_id) 
    686                         WHERE T2.product_id = alldtl.product_id 
    687                             $where_category 
    688                         ORDER BY T3.rank DESC, T2.rank DESC 
    689                         LIMIT 1 
    690                     ) DESC 
    691                     ,product_id 
    692 __EOS__; 
    693                 $arrval_order = array_merge($arrval_category, $arrval_category); 
    694                 break; 
    695         } 
    696  
    697         // 取得範囲の指定(開始行番号、行数のセット) 
    698         $objQuery->setlimitoffset($disp_num, $startno); 
    699         // 表示順序 
    700         $objQuery->setorder($order); 
    701  
    702         // 検索結果の取得 
    703         $this->arrProducts = $objQuery->select($col, $from, $where, $arrval_order); 
    704         // ▲商品詳細取得 
    705  
    706         // 規格名一覧 
    707         $arrClassName = $objDb->sfGetIDValueList("dtb_class", "class_id", "name"); 
    708         // 規格分類名一覧 
    709         $arrClassCatName = $objDb->sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 
    710         // 規格セレクトボックス設定 
    711         if($disp_num == 15) { 
    712             for($i = 0; $i < count($this->arrProducts); $i++) { 
    713                 $this->lfMakeSelect($this->arrProducts[$i]['product_id'], $arrClassName, $arrClassCatName); 
    714                 // 購入制限数を取得 
    715                 $this->lfGetSaleLimit($this->arrProducts[$i]); 
    716             } 
    717         } 
    718     } 
    719  
    720550    /* 規格セレクトボックスの作成 */ 
    721551    function lfMakeSelect($product_id, $arrClassName, $arrClassCatName) { 
Note: See TracChangeset for help on using the changeset viewer.