Calendar

<< 11月  
 123
45678910
11121314151617
18192021222324
252627282930  
  • ECCUBEのお客様の声を商品詳細以外のページで実装する
  • 2015.03.03
  • ECCUBEで構築されたサイトで、新規にページを追加して商品のランディングページのようなものを作成した際に、商品詳細にあるレビュー機能を実装したかったので調べましたが、そのようなニーズが無いのか、希望するものが見つからなかった為、レビュー機能を表示する方法をまとめておきます。

     

    まず、お客様の声のSmartyのソースは下記のようになっておりますので、これを追加したページのテンプレートファイルに貼り付けます。
    ※ソースは必要に応じて適宜変更してください。

     

    <!–この商品に対するお客様の声–>
    <div id=”customervoice_area”>
    <h2><img src=”<!–{$TPL_URLPATH}–>img/title/tit_product_voice.png” alt=”この商品に対するお客様の声” /></h2>

    <div class=”review_bloc clearfix”>
    <p>この商品に対するご感想をぜひお寄せください。</p>
    <div class=”review_btn”>
    <!–{if count($arrReview) < $smarty.const.REVIEW_REGIST_MAX}–>
    <!–★新規コメントを書き込む★–>
    <a href=”../products/review.php”
    onclick=”eccube.openWindow(‘../products/review.php?product_id=●●●●●’,’review’,’600′,’640′); return false;”
    target=”_blank”>
    <img class=”hover_change_image” src=”<!–{$TPL_URLPATH}–>img/button/btn_comment.jpg” alt=”新規コメントを書き込む” />
    </a>
    <!–{/if}–>
    </div>
    </div>

    <!–{if count($arrReview) > 0}–>
    <ul>
    <!–{section name=cnt loop=$arrReview}–>
    <li>
    <p class=”voicetitle”><!–{$arrReview[cnt].title|h}–></p>
    <p class=”voicedate”><!–{$arrReview[cnt].create_date|sfDispDBDate:false}–> 投稿者:<!–{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 class=”recommend_level”><!–{assign var=level value=$arrReview[cnt].recommend_level}–><!–{$arrRECOMMEND[$level]|h}–></span></p>
    <p class=”voicecomment”><!–{$arrReview[cnt].comment|h|nl2br}–></p>
    </li>
    <!–{/section}–>
    </ul>
    <!–{/if}–>
    </div>
    <!–お客様の声ここまで–>

     

    ※product_idは該当する商品のidを指定します。

    このソースを見ると、必要な情報は「$arrReview」と「$arrRECOMMEND」という配列に入っているようなので、

    user_dataフォルダの中の新規に追加したファイル名のPHPファイルに追加していきます。

     

    まず、変数の宣言をします。

    /** @var array レビュー情報 */
    public $arrReview;

    /** おすすめレベル */
    public $arrRECOMMEND;

     

    次に関数を下記の通り変更する。

    function init()
    {
    parent::init();
    $masterData = new SC_DB_MasterData_Ex();
    $this->arrRECOMMEND = $masterData->getMasterData(‘mtb_recommend’);
    }

     

    function action()
    {
    //レビュー情報の取得
    $this->arrReview = $this->lfGetReviewData();

    }

     

    action関数で使われるlfGetReviewData関数を追加する

    //商品ごとのレビュー情報を取得する
    function lfGetReviewData() {
    $objQuery =& SC_Query_Ex::getSingletonInstance();
    $col = “create_date, reviewer_url, reviewer_name, recommend_level, title, comment”;
    $from = “dtb_review”;
    $where = “del_flg = 0 AND status = 1 AND product_id = ?”;
    $objQuery->setOrder(‘create_date DESC’);
    $objQuery->setLimit(REVIEW_REGIST_MAX);
    $arrWhereVal = array(“4”);
    $arrReview = $objQuery->select($col, $from, $where, $arrWhereVal);
    return $arrReview;
    }

    ※$arrWhereValは、表示したい商品のproduct_idを指定します。

     

    これで、レビューの表示と投稿ができるようになりました。

     

【この記事のタグ】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

▲ PAGE TOP