24)商品一覧ページをTOPページに表示 – hetemlのサーバでEC-CUBE(2.11.5)を使ってみる

6月 13th, 2012 カテゴリー EC-CUBE2.11

TOPページに商品の一覧を表示させたかったのでトライします。
基本的には商品一覧をブロック化して表示させます。



1)ブロックを新規作成し、データベースも内容更新します


管理画面の「デザイン管理」⇒「PC」⇒「ブロック設定」でブロックを追加。

ブロック名:商品リスト一覧
ファイル名:products_list


データベースの「dtb_bloc」テーブルに、先ほど追加した「商品リスト一覧」があります。
「php_path」が「NULL」になっていますので、
ここを「frontparts/bloc/products_list.php」に変更します。




2)ファイルを複製します


/html/products/list.php
/data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php
/data/class/pages/products/LC_Page_Products_List.php

をファイル名を変更して、下記ディレクトリに設置

/html/frontparts/bloc/products_list.php
/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Products_List_Ex.php
/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Products_List.php



3)ファイルを編集します



/html/products/list.php

// {{{ requires
require_once realpath(dirname(__FILE__)) . '/../../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Products_List_Ex.php';

// }}}
// {{{ generate page

$objPage = new LC_Page_FrontParts_Products_List_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();


/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Products_List_Ex.php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Products_List.php';
class LC_Page_FrontParts_Products_List_Ex extends LC_Page_FrontParts_Products_List {

    // }}}
    // {{{ 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_Products_List.php
下の部分のソースはしょってます。


// {{{ requires
//require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php';
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';

class LC_Page_FrontParts_Products_List extends LC_Page_FrontParts_Bloc {

    // {{{ properties

    /** テンプレートクラス名1 */
    var $tpl_class_name1 = array();

    /** テンプレートクラス名2 */
    var $tpl_class_name2 = array();

    /** JavaScript テンプレート */
    var $tpl_javascript;

    var $orderby;

    var $mode;

    /** 検索条件(内部データ) */
    var $arrSearchData = array();

    /** 検索条件(表示用) */
    var $arrSearch = array();

    var $tpl_subtitle = '';

   /** ランダム文字列 **/
    var $tpl_rnd = '';

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
	$bloc_file = 'products_list.tpl';
	$this->setTplMainpage($bloc_file);
		
        $masterData                 = new SC_DB_MasterData_Ex();
        $this->arrSTATUS            = $masterData->getMasterData("mtb_status");
        $this->arrSTATUS_IMAGE      = $masterData->getMasterData("mtb_status_image");
        $this->arrDELIVERYDATE      = $masterData->getMasterData("mtb_delivery_date");
        $this->arrPRODUCTLISTMAX    = $masterData->getMasterData("mtb_product_list_max");
    }


後はレイアウト設定から、「商品リスト一覧」のブロックを追加すればOKです。


と思ったらもっと簡単にわかりやすく説明しているサイトがありましたので参考。
[EC-CUBE 2.11.4] 商品一覧ブロックを作成する

Sponsored Links

コメントする

Eメールアドレスは公開されません。