【EC-CUBE】商品一覧の表示順(昇順・降順)の変更・追加
商品一覧ページの一覧上下に表示されているソートリンクを追加(または変更)して、降順・昇順の並べ替えボタンを作ることができる。
例えば、
「価格:高い順 安い順 新しい順 古い順」
に並べ替えというようなことが可能。
1)/data/class/pages/products/LC_Page_Products_List.php を編集。
//表示順序
switch($orderby) {
という記述を探します。(Ver.2.3RC1の場合、L387あたり。)
その下の、
「case ‘ ○○ ‘:」
という部分が、それぞれのソートのルールを決めている部分。
この中の、「$order =” ○○ “;」というところがソートの指定。ここに、ソートに使用したい項目を入れる。優先順も。降順にしたい場合は、項目の後に半角スペースを入れて、「disc」と記述。
仮に、価格降順(高いほうから安いほうへ)のソートルールを作るのであれば、
case ‘price’:
$col = “DISTINCT price02_min, product_id, product_code_min, product_code_max,”
. ” name, comment1, comment2, comment3,”
. ” main_list_comment, main_image, main_list_image,”
. ” price01_min, price01_max, price02_max,”
. ” stock_min, stock_max, stock_unlimited_min, stock_unlimited_max,”
. ” point_rate, sale_limit, sale_unlimited, deliv_date_id, deliv_fee,”
. ” status, product_flag, create_date, del_flg”;
$from = “vw_products_allclass AS T1”;
$order = “price02_min, product_id”;
break;
をコピーして、「case ‘price2’:」などとして、「$order = “price02_min, product_id”;」→「$order = “price02_min disc, product_id”;」とすればよい。
2)/data/Smarty/templates/default/list.tpl テンプレートにソーとリンクを追加表示させる。
L69行目以下の適当な場所/L188行目以下の適当な場所に表示リンクを追加(または修正)する。
先の例で、価格降順のリンクを追加する場合としたら、
<!–{if $orderby != ‘price2‘}–>
<a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘price2‘)”>価格降順</a>
<!–{else}–>
<strong>価格降順</strong>
<!–{/if}–>
こういう形のコードを追加し、「価格順」という文字を「価格昇順」と変更すれば、価格のソートは、高いほうからも安いほうからも並べ替えできるようになる。