バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品一覧 新着順の並び方について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
marushige
投稿日時: 2011/6/2 12:32
対応状況: −−−
一人前
登録日: 2011/2/14
居住地:
投稿: 93
商品一覧 新着順の並び方について

商品一覧ページにある「新着順」というボタンについてですが、
デフォルトで商品IDを引っ張ってきてならべてあるかと思いますが、

この「新着順」を 商品の並び替えのように自由に並び替え出来ることはかのうなのでしょうか?

現在商品が500点ほどあり、登録をしていっていたのですが、
カタログ通りに並べたいなぁと思い新着順を自由に変更できればなぁと思ったので、
記載してみました。

できなければ仕方ないので、地道に登録しなおしていこうと思います。

どなたかご教授お願いします。
seasoft
投稿日時: 2011/6/2 12:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 商品一覧 新着順の並び方について
「商品管理>商品並び替え」での並び替えの他にも、もう1種類の並び順を定義したいということでしょうか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

marushige
投稿日時: 2011/6/2 17:33
対応状況: −−−
一人前
登録日: 2011/2/14
居住地:
投稿: 93
Re: 商品一覧 新着順の並び方について
【「商品管理>商品並び替え」での並び替えの他にも、もう1種類の並び順を定義したいということでしょうか?】

という事なるのでしょうか!?

新着順を管理画面にて操作できればいいのですが・・・それでは新着順の意味合いがなくなると思いますので・・・


新着順をクリックしたときに、各カテゴリの商品並び替えで設定している順番でならんでくれると一番理想になります。新着の意味合いが少し違ってきますが><現サイトではそのカタチが一番近くなるので・・・
fukap
投稿日時: 2011/6/2 19:01
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 商品一覧 新着順の並び方について
引用:
商品一覧ページにある「新着順」というボタンについてですが、
デフォルトで商品IDを引っ張ってきてならべてあるかと思いますが、

「新着順」のデフォルト(カスタマイズしない初期状態)のことを仰っているのか、
商品一覧ページを最初に表示した初期状態のことを「デフォルト」と仰っているのか、
文章から判断がつけにくいです。

前者であれば、新着順のデフォルトは、商品登録日(create_date)順です。
商品IDを引っ張ってきてるわけではないと思います。
EC-CUBE 2.4.4の場合、data/class/pages/products/LC_Page_Products_List.php の493行目付近に記述があります。

後者であれば、デフォルトでは 管理画面 > 商品管理 > 商品並び替え で行った順番が、
商品一覧にも反映されるはずです。
EC-CUBE 2.4.4の場合、data/class/pages/products/LC_Page_Products_List.php の498行目付近に記述があります。

引用:
新着順をクリックしたときに、各カテゴリの商品並び替えで設定している順番でならんでくれると一番理想になります

これを読む限り、商品一覧ページを表示した初期状態は、商品並べ替えで設定している順番で並んでいないということですよね。
初期状態は、現在どのような順番で並んでいますか?
marushige
投稿日時: 2011/6/2 20:16
対応状況: −−−
一人前
登録日: 2011/2/14
居住地:
投稿: 93
Re: 商品一覧 新着順の並び方について
すいません 説明がわるくて。

商品一覧を表示すると、管理画面から商品の並び替えした状態で出てきます。


たとえば、「A」というカテゴリに 1〜10までの商品が登録されているとします。

「A」というカテゴリに移動すると 1〜10までの商品が管理画面で指定している通りに並んでいます。
そこで「新着順」をクリックした場合に、「A」というカテゴリの中で商品登録順で表示されてくるかと思います。
この「新着順」をおしたときの並び方を制御する方法があるのかなぁという質問です。
または、「新着順」で出てくる時の順番を管理画面の商品並び買えのように、変更ができればなという要望なのです。

わかるでしょうか。   説明がへたで申し訳ないです。
fukap
投稿日時: 2011/6/2 21:07
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 商品一覧 新着順の並び方について
制御の方法ということであれば、
data/class/pages/products/LC_Page_Products_List.php の493行目で、
以下のように新着順に並べるSQLのORDER BY句が記述されていると思いますので、そこを書き換える形になります。
create_dateを他のカラム名に変えてみるのも良いかもしれません。

//新着順
case 'date':
$order = "create_date DESC, product_id";
break;

また管理画面から任意に並び順を設定したいということであれば、
seasoft様が言われた、もう一種類の並び順の定義という話になります。
この場合、DBのカラム追加を含む、多くの箇所のカスタマイズが必要です。
marushige
投稿日時: 2011/6/3 18:19
対応状況: −−−
一人前
登録日: 2011/2/14
居住地:
投稿: 93
Re: 商品一覧 新着順の並び方について
指定のファイルをより、下記部分を見つけました。
//新着順
case 'date':
$order = "create_date DESC, product_id";
break;


新着順を商品並びかえの順序と全く同じにしようとしているのですが、
あんまり意味ないのですが、そうするのが一番近いカタチになるので。。。


create_dateの部分を入れ替えを いろいろしているのですが、表示ができなくなったり希望通りにはいかないです。

新着順のところが商品並び替えの順番と同じになるようにするにはどうすればいいでしょうか?
fukap
投稿日時: 2011/6/3 18:43
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 商品一覧 新着順の並び方について
引用:
新着順を商品並びかえの順序と全く同じにしようとしているのですが、 あんまり意味ないのですが、そうするのが一番近いカタチになるので。。。

そうされようとしている意図がまだちょっと理解しかねていますが。
ともかく、商品並び替えの順番に関する記述は、新着順の5行ほど下の、default: から始まる以下の行に書かれています。

                $order = <<< __EOS__
                    (
                        SELECT
                             T3.rank
                        FROM
                            dtb_product_categories T2
                            JOIN dtb_category T3
                                USING (category_id)
                        WHERE T2.product_id = alldtl.product_id
                            $where_category_order
                        ORDER BY T3.rank DESC, T2.rank DESC
                        LIMIT 1
                    ) DESC
                    ,(
                        SELECT
                            T2.rank
                        FROM
                            dtb_product_categories T2
                            JOIN dtb_category T3
                                USING (category_id)
                        WHERE T2.product_id = alldtl.product_id
                            $where_category_order
                        ORDER BY T3.rank DESC, T2.rank DESC
                        LIMIT 1
                    ) DESC
                    ,product_id
__EOS__;
                $arrval_order = array_merge($arrval_category, $arrval_category);

これを新着順の $order を定義している行と書き換えれば、意図されている形になるのかなと思います。
もし自分で並び順を定義したいなら、SQLの基礎を勉強されると良いと思います。
patapata
投稿日時: 2011/6/3 19:23
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: 商品一覧 新着順の並び方について
なにやりたいかよく分りませんが、カテゴリメニューからしか
新着順→標準に戻すことが出来ない
価格順→標準に戻すことが出来ない

ってので変えたいのなら、単純に標準を作ればいいだけですよ。


list.tpl


                <!--{if $orderby != 'default'}-->
                    <a href="java script:fnChangeOrderby('default');">標準</a>
                <!--{else}-->
                    <strong>標準</strong>
                <!--{/if}-->&nbsp;

                <!--{if $orderby != 'price'}-->
                    <a href="java script:fnChangeOrderby('price');">価格順</a>
                <!--{else}-->
                    <strong>価格順</strong>
                <!--{/if}-->&nbsp;


LC_Page_Products_List.php

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

            case 'default':
            default:

marushige
投稿日時: 2011/6/4 9:56
対応状況: 解決済
一人前
登録日: 2011/2/14
居住地:
投稿: 93
Re: 商品一覧 新着順の並び方について
デフォルトを新着順に反映して意図したものにちかくなったのでとりあえず解決できました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は90,311名です
総投稿数は110,369件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1360
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.