スポンサードリンク

EC CUBE2.11.4には商品リストと商品詳細のページで
デフォルトでパンくずリストが表示されません。
パンくずリストとは
「ホーム > カテゴリ一覧 > 商品」
上記のものがページの左上に一般的にあるものです。
SEOでも大切なものなのでカスタマイズして表示させてみました。
スポンサードリンク
商品リストでのパンくずリスト
商品リストでのパンくずリストを作ります。
LC_Page_Products_Detail.phpを編集
data/class/pages/products/LC_Page_Products_List.php
function action() { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objProduct = new SC_Product_Ex(); ・・・中略・・・ // 商品一覧パンくずリストを取得 $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']); $breadcrumb = '<li><a href="/index.php">ホーム</a>></li>'; foreach($arrCatId as $key => $val){ $arrCatName = $objDb->sfGetCat($val); if($val != $this->arrForm['category_id']){ $breadcrumb .= '<li><a href="./list.php?category_id=' .$val. '">'. $arrCatName['name'] . '</a>></li>'; }else{ $breadcrumb .= $arrCatName['name']; } } }else{ $breadcrumb = '<li><a href="/index.php">ホーム</a>></li>' . $this->arrForm['name'] . " の検索結果"; } $this->Breadcrumb = $breadcrumb; }
検索結果でもパンくずが出るように
カテゴリーidがない場合で分岐させています。
テンプレートの編集
次にテンプレートの編集です。
/data/Smarty/templates/default/products/list.tpl
<!--▼CONTENTS--> <ul id="breadcrumb"> <!--{$Breadcrumb}--> </ul> ・・・中略・・・
「▼CONTENTS」のすぐ下にパンくずリストが出るようにしています。
パンくずリストの見た目の調整
最後にパンくずリストの見た目の調整です。
商品一覧ページに使っているどれかのCSSに以下を書きます。
#breadcrumb li { display: inline; }
以上で商品一覧ページのパンくずリストができました。
商品詳細でのパンくずリスト
商品詳細でのパンくずリストを作ります。
LC_Page_Products_Detail.phpを編集
data/class/pages/products/LC_Page_Products_Detail.php
function action() { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objProduct = new SC_Product_Ex(); ・・・中略・・・ // 商品一覧パンくずリストを取得 $objDb = new SC_Helper_DB_Ex(); $arrCatId = $objDb->sfGetParents("dtb_category", "parent_category_id", "category_id", $this->arrForm['category_id']); $breadcrumb = '<li><a href="/index.php">ホーム</a>></li>'; foreach($arrCatId as $key => $val){ $arrCatName = $objDb->sfGetCat($val); if($val != $this->arrForm['category_id']){ $breadcrumb .= '<li><a href="./list.php?category_id=' .$val. '">'. $arrCatName['name'] . '</a>></li>'; }else{ $breadcrumb .= $arrCatName['name']; } } $this->Breadcrumb = $breadcrumb; }
商品リストと違って検索結果はないので
そのままパンくずリストとして変数に入れていきます。
テンプレートの編集
次にテンプレートの編集です。
/data/Smarty/templates/default/products/detail.tpl
<!--▼CONTENTS--> <ul id="breadcrumb"> <!--{$TopicPath}--> <li><!--{$arrProduct.name|h}--></li> </ul> ・・・中略・・・
「▼CONTENTS」のすぐ下にパンくずリストが出るようにしています。
商品リストと違って、商品名がパンくずリストの最後に来るようにします。
パンくずリストの見た目の調整
最後にパンくずリストの見た目の調整です。
商品詳細ページに使っているどれかのCSSに以下を書きます。
#breadcrumb li { display: inline; }
これは、商品リストと同じ内容なので
商品リストとまとめてもいいと思います。
スポンサードリンク