今日は備忘録です。
EC-Cubeの商品一覧画面って
初期では「価格順」「新着順」の2つだけしか無いのですが
もう少し追加したい・・・
ということで
「価格順」を価格が高い順と価格が安い順の2つに分けることにします。
修正するファイルは
テンプレートファイルと
クラスファイルの2つ
どのように動作しているかというと
リンクをクリックすると、Javascriptでテンプレート内の隠し項目「orderby」に
引数を入れてPOSTしています。
受け取った「orderby」の値を元に、商品検索の内部処理時のSQLに
order by句を当てはめているわけです。
ということで変更する方法は以下のとおりです。
まずはテンプレートファイルを変更
ファイル名:list.tpl
<a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘price’)”>価格が安い順</a>
と
<a href=”javascript:fnModeSubmit(”, ‘orderby’, ‘price2’)”>価格が安い順</a>
を表示したい部分に修正・追加します。
基本的にはこれだけでOK
現在の表示順を表示したい場合は
<!–{if $orderby != ‘price’}–>
<!–{else}–>
<!–{/if}->
の部分を編集します。
次にクラスファイルを変更
ファイル名:LC_Page_Products_List_Ex.php
継承元であるLC_Page_Products_List.phpから
以下の関数をコピーします。
lfDispProductsList
コピーした関数の
//表示順序
switch($orderby) {
}
の部分に追加した「price2」のorder by句を追記します。
case ‘price_2’:
$order = “price02_min desc, product_id”;
break;
簡単ですね!!