Labo

[EC-CUBE 2.11.2] 商品一覧ページにも関連カテゴリを表示したい

2011年10月02日 / 投稿者名:fukap


下の画像のように、商品一覧ページに関連カテゴリを表示させたいと思います。

 

 

1.data/class/pages/products/LC_Page_Products_List.php を修正する

 

data/class/pages/products/LC_Page_Products_List.php の 168行目付近を修正。
foreach($this->arrProducts …) の処理があったので便乗。

//onloadスクリプトを設定
foreach ($this->arrProducts as $arrProduct) {
	$js_fnOnLoad .= "fnSetClassCategories(document.product_form{$arrProduct['product_id']});";
    // 関連カテゴリを取得
    $this->arrRelativeCat[$arrProduct['product_id']] = SC_Helper_DB_Ex::sfGetMultiCatTree($arrProduct['product_id']);
}

2.data/Smarty/templates/default/products/list.tpl を修正する

 

サンプルでは、189行目付近のコメントの上に配置してみました。

<!--★関連カテゴリ★-->
<dl class="relative_cat">
    <dt>関連カテゴリ:</dt>
    <!--{section name=r loop=$arrRelativeCat[$id]}-->
        <dd>
            <!--{section name=s loop=$arrRelativeCat[$id][r]}-->
                <a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$arrRelativeCat[$id][r][s].category_id}-->"><!--{$arrRelativeCat[$id][r][s].category_name}--></a>
                <!--{if !$smarty.section.s.last}--><!--{$smarty.const.SEPA_CATNAVI}--><!--{/if}-->
            <!--{/section}-->
        </dd>
    <!--{/section}-->
</dl>

基本的にはどこに配置してもいいですが、

<!--{foreach from=$arrProducts item=arrProduct name=arrProducts}--> ~ <!--{/foreach}-->

の範囲内に設置すること、そして

<!--{assign var=id value=$arrProduct.product_id}-->

のコード以降に記述しないと動作しませんのでご注意を。

 

3.CSSはお好みでどうぞ。

 

html/user_data/packages/default/css/contents.css

/* 関連カテゴリ */
div.listrightbloc dl.relative_cat {
    //background: url("../img/background/line_dot_01.gif") repeat-x scroll center bottom transparent;
    margin: 0 0 10px;
    //padding: 0 0 10px;
}
div.listrightbloc dl.relative_cat dt,
div.listrightbloc dl.relative_cat dd {
    float: none;
    display:block;
    padding-bottom:0;
}
div.listrightbloc dl.relative_cat dd {
    margin-left: 1em;
}

[EC-CUBE 2.11.2] 商品一覧ページにも関連カテゴリを表示したい への4件のコメント

  1. tuya より:

    fukap 様
    いつも参考にさせていただいております。

    関連カテゴリの中の”なべ”のみを
    表示させたい場合
    どう記載すればよろしいでしょうか。

    食品>なべ => なべ 

    という形で表示させたいのです。

    [r]を削除したのみでは表示できませんでした。

    お忙しいところ恐れ入りますが
    教えていただけませんでしょうか。

  2. fukap より:

    そうですね、ちょっと書き直さないと実現できないと思います。
    ん~余裕があれば週末に考えてみますね。

  3. tuya より:

    fukap 様

    https://ec-cube.nakweb.com/blog/1708.html

    参考にさせていただきました。

    希望通りの表示ができました。

    お忙しいところ
    丁寧にご教授いただいて感謝いたします。

    ありがとうございました。

コメントを残す

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

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。