EC-CUBE 商品総数やレビュー総数を表示するブロックを作成する

■商品総数やレビュー総数を表示するブロックを作成する

手順:
管理画面のブロック設定から総数を表示するtotal.tplを作成する
tootal.phpファイルを作成する
LC_Page_FrontParts_Bloc_New_Total_Ex.phpを作成する
LC_Page_FrontParts_Bloc_New_Total.phpを作成する
データベースを修正する

■管理画面のブロック設定から総数を表示するtotal.tplを作成する

<div class="bloc_outer clearfix">
  <div id="recommend_area">
    <h2>商品数:<!--{$productTotal||number_format}-->品&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;レビュー数:<!--{$productTotal||number_format}-->件</h2>
  </div>
</div>

■total.phpファイルを作成する

<?php
require_once realpath(dirname(__FILE__)) . '/../../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Total_Ex.php';

$objPage            = new LC_Page_FrontParts_BLoc_Total_Ex();
$objPage->blocItems = $params['items'];
$objPage->init();
$objPage->process();

■LC_Page_FrontParts_Bloc_New_Total_Ex.phpを作成する

<?php
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Total.php';

/**
 * 総数 のページクラス(拡張).
 *
 * LC_Page_FrontParts_Bloc_Total をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_Total_Ex extends LC_Page_FrontParts_Bloc_Total
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }
    
    /**
     * Page のアクション.
     *
     * @return void
     */
    public function action()
    {
      $objQuery =& SC_Query_Ex::getSingletonInstance();
      $this->productTotal = $objQuery->count('dtb_products', 'del_flg = ?', array(0));
      $this->reviewTotal = $objQuery->count('dtb_review', 'del_flg = ? AND status = ?', array(0, 1));
    }
}

■LC_Page_FrontParts_Bloc_New_Total.phpを作成する

<?php
require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Ex.php';

/**
 * 総数 のページクラス.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_Total extends LC_Page_FrontParts_Bloc_Ex
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    public function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    public function process()
    {
        $this->action();
        $this->sendResponse();
    }

    /**
     * Page のアクション.
     *
     * @return void
     */
    public function action()
    {
    }

}

■データベースを修正する(phpMyAdminを利用する場合)
ec_cube_084

『phpMyAdmin』にログインして『dtb_bloc』をクリックする
block_nameが『総数』の行の『編集ボタンをクリック』

ec_cube_085

呼び出しファイルを設定する『php_path』に【frontparts/bloc/total.php】を設定する
『実行する』をクリックする

以上で全てのページに対して『最新商品』のブロックを表示することが出来る

■レイアウト設定から『総数』をTOPに適用
ec_cube_086

■適用後の画面(TOPページ)
ec_cube_087

Comments are closed.