【縦スライド用】上記のファイルをコピーして作成。(コードに「_Vertical」を追加すること) ① ■html/frontparts/bloc/recent_products_vertical.php ② ■data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products_Vertical_Ex.php ③ ■data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products_Vertical.php
(3)PC用のテンプレートを作成する ① jQuery.carouFredSel(http://caroufredsel.frebsite.nl/)を適用する。 ■html/js/jquery.caroufredsel/jquery.carouFredSel-5.5.0-packed.js ■html/js/jquery.caroufredsel/miscellaneous_sprite.png
下記書籍をもとに書いています。詳しくは、本をお読みください。
PCでは、jQuery.carouFredSel(http://caroufredsel.frebsite.nl/)を利用して表示する。
また、横スライド用と縦スライド用を用意し、メインブロックへの配置、サイドブロックへの配置に対応する。
3カラムの時(左右にスライド)
2カラムの時(左右にスライド)
サイドに配置した時(上下にスライド)(3カラム、2カラム共通)
1 データベースに登録
(1)会員ユーザーが見た商品を登録するためのdtb_recent_productテーブルを作成する。
——————————————
名前:dtb_recent_product フィールド数:3
フィールド:customer_id
種別:INT
長さ:11
ヌル:チェックしない
フィールド:product_id
種別:INT
長さ:11
ヌル:チェックしない
フィールド:create_date
種別:DATETIME
ヌル:チェックしない
——————————————
(2)最近チェックした商品の表示数を設定する定数をmtb_constantsテーブルに登録する。
——————————————
id:DISP_RECENT_PRODUCT
name:10(←定数)
rank:1241(←適宜)
remarks:最近チェックした商品の表示数
——————————————
★ システム設定>パラメーター設定を開き、「この内容で登録する」をクリックする。
2 最近チェックした商品の登録
■ data/class/pages/products/LC_Page_Products_Detail.php
① // ログイン判定
if ($objCustomer->isLoginSuccess() === true){}内に追加する。
[php]
//最近チェックした商品として登録する
$this->lfRegistRecentProduct($product_id,$objCustomer->getValue(‘customer_id’));
[/php]
② 一番下 lfRegistFavoriteProductメソッドの次に追加する。
[php]
function lfRegistRecentProduct($product_id,$customer_id) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
//既に同じ会員に同じ商品が登録されているか
$count = $objQuery->count(“dtb_recent_product”,”product_id = ? and customer_id = ?”,array($product_id,$customer_id));
//同じ商品が登録されていれば更新
if($count >0){
$objQuery->update(“dtb_recent_product”,array(“create_date”=>’now()’),”product_id = ? and customer_id = ?”,array($product_id,$customer_id));
}else{
//登録数を取得
$maxcount = $objQuery->count(“dtb_recent_product”,”customer_id = ?”,array($customer_id,));
//最大表示数異常であれば一番古い履歴を削除してから登録
if($maxcount>=DISP_RECENT_PRODUCT){
$objQuery->delete(“dtb_recent_product”,”customer_id = ? order by create_date limit 1″,array($customer_id));
}
$objQuery->insert(“dtb_recent_product”,array(“product_id”=>$product_id,”customer_id”=>$customer_id,”create_date”=>”now()”));
}
}
[/php]
3 最近チェックした商品を表示するためにブロックを作成する。
(1)データ取得のための拡張ファイル等を新規作成
① ■html/frontparts/bloc/recent_products.php
② ■data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products_Ex.php
③ ■data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products.php
【縦スライド用】上記のファイルをコピーして作成。(コードに「_Vertical」を追加すること)
① ■html/frontparts/bloc/recent_products_vertical.php
② ■data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products_Vertical_Ex.php
③ ■data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Recent_Products_Vertical.php
(2)データベースのdtb_blocにPC用(device_type_id=10)、携帯用(device_type_id=1)、スマートフォン用(device_type_id=2)のブロックを登録する。
PC用
——————————————
device_type_id:10
bloc_id:12(環境に応じて)
bloc_name:最近チェックした商品(横スライド)
tpl_path:recent_products.tpl
filename:recent_products
create_date:作成日時
update_date:作成日時
php_path:frontparts/bloc/recent_products.php
deletable_flg:0
——————————————
device_type_id:10
bloc_id:15(環境に応じて)
bloc_name:最近チェックした商品(縦スライド)
tpl_path:recent_products_vertical.tpl
filename:recent_products_vertical
create_date:作成日時
update_date:作成日時
php_path:frontparts/bloc/recent_products_vertical.php
deletable_flg:0
——————————————
携帯用
——————————————
device_type_id:1
bloc_id:7(環境に応じて)
bloc_name:最近チェックした商品
tpl_path:recent_products.tpl
filename:recent_products
create_date:作成日時
update_date:作成日時
php_path:frontparts/bloc/recent_products.php
deletable_flg:0
——————————————
スマートフォン用
——————————————
device_type_id:2
bloc_id:10(環境に応じて)
bloc_name:最近チェックした商品
tpl_path:recent_products.tpl
filename:recent_products
create_date:作成日時
update_date:作成日時
php_path:frontparts/bloc/recent_products.php
deletable_flg:0
——————————————
(3)PC用のテンプレートを作成する
① jQuery.carouFredSel(http://caroufredsel.frebsite.nl/)を適用する。
■html/js/jquery.caroufredsel/jquery.carouFredSel-5.5.0-packed.js
■html/js/jquery.caroufredsel/miscellaneous_sprite.png
■data/Smarty/templates/default/site_frame.tplに追加
[php]
[/php]
②テンプレートファイルを作成する
横スライド用 ■data/Smarty/templates/default/frontparts/bloc/recent_products.tpl
[php]
$(function() {
$("#foo1").carouFredSel({
auto : false,
prev : "#foo1_prev",
next : "#foo1_next"
});
});
最近チェックした商品
円(税込)
prev
next
[/php]
縦スライド用 ■data/Smarty/templates/default/frontparts/bloc/recent_products_vertical.tpl
[php]
$(function() {
$("#foo2").carouFredSel({
auto : false,
prev : "#foo2_prev",
next : "#foo2_next",
circular : true,
direction : "up",
items : 3
});
});
最近チェックした商品
円(税込)
prev
next
[/php]
③ CSSを適用する
■data/user_data/packages/default/css/bloc.cssに追加
ブロックを配置する場所によっては、レイアウトが崩れる場合もあるので、