バージョン選択

フォーラム

メニュー

オンライン状況

24 人のユーザが現在オンラインです。 (16 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 24
もっと...

サイト内検索

質問 > フロント機能 > 【ECCUBE2.11】商品一覧の並び順条件にステータスを加えたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
by0448
投稿日時: 2013/2/18 10:41
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
【ECCUBE2.11】商品一覧の並び順条件にステータスを加えたい
いつもお世話頂いております。

商品一覧ページの並び順についてお聞かせください。

現在、私が運営するサイトでの商品の並び順ですが、商品の更新順となっております。

この更新順をなくさず、これにあるステータスを追加している商品を優先で先頭に持ってきたいのですが、どのような変更が必要でしょうか。


このあるステータスというのはNEWステータスで、ステータス番号は1です。



どなたか、お詳しい方がいましたら、ご教授のほど、よろしくお願いいたします。


―環境―――――――――――――
EC-CUBE 2.11.2
MySQL 5.1.34-log
PHP 5.2.17
――――――――――――――――
pingpong
投稿日時: 2013/2/18 15:22
対応状況: −−−
長老
登録日: 2011/12/15
居住地:
投稿: 156
Re: 【ECCUBE2.11】商品一覧の並び順条件にステータスを加えたい
質問者様のPHPに対する理解度がどれ程なのかわかりませんが、下記の箇所を変更することでソート順は変更可能です。

data/class/pages/products/LC_Page_Products_list.php
lfGetProductsListメソッド
data/class/pages/products/list.php
105行目付近のソート順を設定する部分

by0448
投稿日時: 2013/2/18 16:36
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ECCUBE2.11】商品一覧の並び順条件にステータスを加えたい
pingpong 様 

ご返答ありがとうございます。


引用:

data/class/pages/products/list.php
105行目付近のソート順を設定する部分


という箇所がわからなかったので、以下の箇所に注目してみました。

引用:

data/class/pages/products/LC_Page_Products_list.php
lfGetProductsListメソッド


// 表示順序
switch ($this->orderby) {
// 販売価格が安い順
case 'price':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
break;

// 新着順
case 'date':
$objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
break;

default:
$objProduct->setProductsOrder('update_date', 'dtb_products', 'DESC');
break;




このdefult部分を直せばよいと思い、以下のように変更しました。


            default:
                $objProduct->setProductsOrder('product_status_id', 'update_date', 'dtb_products', 'DESC');
                break;



しかし、これだとエラーが出てしまうようです。
定義が足りないのでしょうか?


PHPに下記たすほど技術と理解を持っていないので、申し訳ありませんが、ご教授いただけないでしょうか。
by0448
投稿日時: 2013/2/20 14:43
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ECCUBE2.11】商品一覧の並び順条件にステータスを加えたい
進展がありましたので、記入させて頂きます。


            default:
                $objProduct->setProductsOrder('product_status_id', 'dtb_product_status', 'ASC');
                break;



以上のコードを追加したところ、ステータス順に並べることができました。

しかし、ステータスが付いていない商品が0と判別されているのか、先頭に来るのはステータスのついていない商品空になってしまいます。


希望としては、ステータスが1のものだけを先頭に持ってきて、他は更新順に並べたいのですが、どのような変更を行えばよいでしょうか。


ご教授の程、よろしくお願いいたします。



スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,927名です
総投稿数は110,012件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.