EC-CUBE 2.11でパンくずリストを表示する方法

カテゴリーページにパンくずリストを表示する

1./data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php

actionメソッドに、パンくずリストを出力するためのコードを追記します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
 * action
 */
function action() {
    parent::action();
    // パンくずタグ生成 下記を追記
    $objDb = new SC_Helper_DB_Ex();
    if ( $this->arrForm['category_id'] ) {
        $arrCatId = $objDb->sfGetParents( "dtb_category", "parent_category_id", "category_id", $this->arrForm['category_id'] );
        $TopicPath = '<a href="'.TOP_URLPATH.'">'.ホーム.'</a> &gt; ';
        foreach ( $arrCatId as $key => $val ) {
            $arrCatName = $objDb->sfGetCat( $val );
            if ( $val != $this->arrForm['category_id'] ) {
                $TopicPath .= '<a href="'.TOP_URLPATH.'products/list.php?category_id='.$val.'">'.$arrCatName['name'].'</a> &gt; ';
            } else {
                $TopicPath .= $arrCatName['name'];
            }
        }
    } else {
        $TopicPath = '<a href="'.TOP_URLPATH.'">'.ホーム.'</a> &gt; '.$this->arrForm['name'].' の検索結果';
    }
    $this->TopicPath = $TopicPath;
}

2./data/Smarty/templates/テンプレート名/products/list.php

1で生成したパンくずリストは$TopicPathという変数に入っています。カテゴリーページ用のテンプレートにその変数を埋め込みます。適当な位置にいれちゃってください。

1
2
3
4
5
<div id="topicPath">
    <p>
        <!--{$TopicPath}-->
    </p>
<!-- end #topicPath --></div>

商品詳細ページにパンくずリストを表示する

1./data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php

カテゴリーページと同じように、actionメソッドに、パンくずリストを出力するためのコードを追記します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * action
 */
function action() {
    parent::action();
    // パンくずhtml生成
    $objDb = new SC_Helper_DB_Ex();
    $arrCategory_id = $objDb->sfGetCategoryId( $this->arrProduct['product_id'] );
    $arrCatId = $objDb->sfGetParents( "dtb_category", "parent_category_id", "category_id", $arrCategory_id[0] );
    $TopicPath = '<a href="'.TOP_URLPATH.'">'.ホーム.'</a> &gt; ';
    foreach ( $arrCatId as $key => $val ) {
        $arrCatName = $objDb->sfGetCat( $val );
        $TopicPath .= '<a href="'.TOP_URLPATH.'products/list.php?category_id='.$val.'">'.$arrCatName['name'].'</a>';
        if ( $val != $arrCategory_id[0] ) {
            $TopicPath .= ' &gt; ';
        }
    }
    $this->TopicPath = $TopicPath.' &gt; '.$this->arrProduct['name'];
}

2./data/Smarty/templates/テンプレート名/products/detail.php

テンプレートの方もカテゴリーページと同じように$TopicPathにパンくずリストが入っているので適当な位置に追記します。

1
2
3
4
5
<div id="topicPath">
    <p>
        <!--{$TopicPath}-->
    </p>
<!-- end #topicPath --></div>

これでカテゴリーページと、商品詳細ページにパンくずリストが表示されるようになります。その他のページはまだ未調査です…。分かり次第追記します。

  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。