新着商品リストを出力する
動作確認環境: EC-Cube 2.1.2
難易度:★★★★☆
Classファイルの作成
対象ファイル:
/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_NewItem.php
/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_NewItem_Ex.php
どちらもBest5をコピーして流用する。
- LC_Page_FrontParts_Bloc_NewItem_Ex.php
requireするファイルをLC_Page_FrontParts_Bloc_NewItem.phpとし、ページクラス部分もBest5となっている部分をNewItemとします。
(NewItemという名称は任意であるが、ここで紹介する全ファイルで整合性がとれるようにしておく必要があります) - LC_Page_FrontParts_Bloc_NewItem.php
こちらも上記同様にBest5の部分をNewItemとします。
テンプレートファイル名をこの中で指定している部分がありますので、best5.tplからnewitem.tplに変更します。
(もちろんnewitem.tplも任意ですが、後述のテンプレートファイル名と合わせておく必要があります)
モバイルページの記述部分も同様にテンプレートファイル名を設定しておきます。
おすすめ商品検索は、検索内容に応じて(今回の場合は新着商品リストなので、Newのフラグのついた商品を取り出します)SQL文を書き換えます。
同様にPHPとSQLがわかるかたであれば、他のフラグをベースに抽出したり、更新日や登録日をベースに抽出したりということが可能です。
$col = "DISTINCT A.*, name, price02_min, price01_min, main_list_image ";
$from = "dtb_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)";
$where = "status = 1 and del_flg = 0 and SUBSTR(product_flag,1,1) = 1 ";
$order = "rank";
WEBページの実体であるnewitem.phpの配備
対象ファイル: /shop/frontparts/bloc/newitem.php
これもbest5.phpを流用して作成すると良いでしょう。
Class指定でBest5となっている部分をNewItemに書き換えます。
テンプレートの作成
この作業は管理画面から行います。
テンプレート管理のブロック編集から、newitem.tplを新規作成します。
中身はbest5.tplをコピーして作ると楽です。
DBへの登録
これはバグな気がしてならないのですが、管理画面からテンプレートを作成しただけでは、tplファイルと実体のphpの場所が紐付いてくれません。
手動でDBを更新してphpファイルの位置を書き加える必要があります。
具体的には、dtb_blocテーブルのnewitemレコードのphp_pathカラムにfrontparts/bloc/newitem.phpを書き込みします。