スポンサードリンク

前回、レビュー一覧を作成したので
ブロックでトップページに表示できるようにしました。
トップページに一覧表示されると
見やすくなるしユーザーにも気付きやすいですからね。
スポンサードリンク
html/frontparts/bloc/review.php を新規作成
【html/frontparts/bloc】の場所に【review.php】を作成します。
中身は下記の内容です。
// {{{ requires require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Review_Ex.php'; // }}} // {{{ generate page $objPage = new LC_Page_FrontParts_BLoc_Review_Ex(); $objPage->blocItems = $params['items']; register_shutdown_function(array($objPage, "destroy")); $objPage->init(); $objPage->process(); ?>
data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Review_Ex.php を新規作成
次に【data/class_extends/page_extends/frontparts/bloc】の場所に
【LC_Page_FrontParts_Bloc_Review_Ex.php】を作成します。
中身は下記の内容です。
// {{{ requires require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Review.php'; /** * Review のページクラス(拡張). * * LC_Page_FrontParts_Bloc_Review をカスタマイズする場合はこのクラスを編集する. * * @package Page */ class LC_Page_FrontParts_Bloc_Review_Ex extends LC_Page_FrontParts_Bloc_Review { // }}} // {{{ functions /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } }
スポンサードリンク
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Review.php を新規作成
// {{{ requires require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php'; /** * Review のページクラス. * * @package Page */ class LC_Page_FrontParts_Bloc_Review extends LC_Page_FrontParts_Bloc { // }}} // {{{ functions /** * Page を初期化する. * * @return void */ function init() { parent::init(); $masterData = new SC_DB_MasterData_Ex(); $this->arrRECOMMEND = $masterData->getMasterData("mtb_recommend"); } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { //レビュー情報の取得 $this->arrReview = $this->lfGetReviewData(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } /** * レビュー検索. * * @return array $arrReview 検索結果配列 */ function lfGetReviewData() { $objQuery =& SC_Query_Ex::getSingletonInstance(); //商品ごとのレビュー情報を取得する $col = "r.create_date, r.reviewer_url, r.reviewer_name, r.recommend_level, r.title, r.comment, p.name, p.main_list_image"; $from = " dtb_review AS r, dtb_products AS p"; $where = " r.product_id = p.product_id AND r.del_flg = 0 AND r.status = 1 ORDER BY r.create_date DESC LIMIT 0,5"; $arrReview = $objQuery->select($col, $from, $where); return $arrReview; } }
今回はトップページに表示させるので
レビューを全件も表示しても見にくいだけなので
LIMITを使い5件のみの表示にしました。
data/Smarty/templates/default/frontparts/bloc/review.tpl を新規作成
そして【data/Smarty/templates/default/frontparts/bloc】の場所に
【review.tpl】を作成します。
中身は下記の内容です。
<div id="review_voice_area"> <pre><h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_product_voice.jpg" alt="この商品に対するお客様の声" /></h2></pre> <div id="voice_box"> <!--{if count($arrReview) > 0}--> <!--{section name=cnt loop=$arrReview}--> <div class="review_border clearfix"> <div class="item_image"> <img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH}--><!--{$arrReview[cnt].main_list_image|h}-->" alt="<!--{$arrReview[cnt].name}-->" /> </div> <div class="voice_box"> <p class="item_name"><!--{$arrReview[cnt].name|h}--></p> <p> <span class="recommend_level"> <!--{strip}--> <!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|h}--> <!--{math equation="x-y" x=5 y=$level assign=sa}--> <!--{section name=i loop=$sa}--> ☆ <!--{/section}--> <!--{/strip}--> </span> :<span class="coment_title"><!--{$arrReview[cnt].title|h}--></span> </p> <p><span class="coment_men">投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|h}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|h}--><!--{/if}--></span><span class="coment_date">(<!--{$arrReview[cnt].create_date|sfDispDBDate:false}-->)</span></p> <p class="voice_comment"><!--{$arrReview[cnt].comment|h|nl2br}--></p> </div> </div> <!--{/section}--> <!--{/if}--> </div> </div>
スポンサードリンク
review.cssファイルを作成
スタイル用に【review.css】を作成します。
中身は下記の内容です。
※スタイルは環境によって違うのでカスタマイズしてください。
.item_image { width: 180px; text-align: center; float: left; } .voice_box { width: 390px; float: left; } .coment_title { color: #40220f; font-size: 16px; font-weight: bold; } .coment_men { font-size: 12px; color: #666; } .coment_date { font-size: 10px; color: #666; } .voice_comment { font-size: 14px; }
データベースに新規ブロックを登録します
【dtb_bloc】テーブル内にデータを入れます。
device_type_id 10(←PCは10)
bloc_id 12(←ブロックidで開いている番号)
bloc_name レビュー
tpl_path review.tpl
filename review
create_date now()
update_date now()
php_path frontparts/bloc/review.php
deletable_flg 0(管理画面で削除できないようにするため。削除可能にするなら1)
PC表示のみで作成しているので
他のデバイスのことは考えていませんでした。
スポンサードリンク
管理画面のページレイアウトでブロックを表示させたいところに追加する。
最後に管理画面でブロックを追加するだけです。
EC CUEB(2.11.4)にレビュー一覧ブロック作成のまとめ
パソコンのサイドバーでの表示のため
今回はCSSの設定をしています。
将来的にCSSは幅600pxで考えていますので、
環境によって調整してください。
これで、トップページにレビューが表示させることができるようになったので
ファーストビューでお客さんの反応が見せられますね。
今回も下記のサイトを参考にさせて頂きました。
[EC-CUBE 2.11.4] レビュー一覧ブロック作成
スポンサードリンク