【EC-CUBE】商品一覧ページの商品の並べ替え降順を追加する

一覧ページの並べ替えリンクで、価格順に昇順だけでなく降順を追加する。
新着順も同様に変更可能。

その1)/data/Smarty/templates/default/list.tplに降順並べ替え用のリンクを追加

L69あたりから(ver.2.3.2例)のソースに価格降順用のソースを追記。「価格順」のソースをコピペして編集すればOK。

 <!–件数ここから–>
  <!–{if $tpl_linemax > 0}–>
  <ul class=”pagenumberarea”>
    <li class=”left”><span class=”pagenumber”><!–{$tpl_linemax}–></span>件の商品がございます。</li>
    <li class=”center”><!–{$tpl_strnavi}–></li>
    <li class=”right”><!–{if $orderby != ‘price’}–>
        <a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘price’)”>価格順</a>
    <!–{else}–>
        <strong>価格順</strong>
    <!–{/if}–>&nbsp;
  <!–{if $orderby != ‘price2’}–>
        <a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘price2’)”>価格降順</a>
    <!–{else}–>
        <strong>価格降順</strong>
    <!–{/if}–>&nbsp;
    <!–{if $orderby != “date”}–>
        <a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘date’)”>新着順</a>
    <!–{else}–>
        <strong>新着順</strong>
    <!–{/if}–>
    </li>
  </ul><!–件数ここまで–>
  <!–{else}–>
    <!–{include file=”frontparts/search_zero.tpl”}–>
  <!–{/if}–>

その2)/data/class/pages/products/LC_Page_Products_List.phpに価格降順用のソースを追記。

こちらも同様に、上の「価格順」のソースをコピペして編集すればOK。

L393あたりから

        //価格順
        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’:
            $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 DESC, product_id”;
            break;

これで、追加OK。新着順を古いものから並べたいときは、同様の手順でその下の「新着順」のコードをコピペして、一番下の「$order = “create_date DESC, product_id”;」を「$order = “create_date, product_id”;」(DESCを削除)とすればよい。