titleタグなので、
data/Smarty/templates/作成したテンプレート名/site_frame.tpl
を修正。
デフォルトだと、
サイト名 / カテゴリ名
とか、
サイト名 / 商品名
となる。
これを
商品名 | カテゴリ | サイト名
のように変えたい。
デフォルトでは、
1 2 3 4 5 6 7 8 | < title > <!--{$arrSiteInfo.shop_name|h}--> <!--{if $tpl_subtitle|strlen >= 1}--> / <!--{$tpl_subtitle|h}--> <!--{elseif $tpl_title|strlen >= 1}--> / <!--{$tpl_title|h}--> <!--{/if}--> </ title > |
となっている。
簡単にできると思ったら、結構面倒くさい。
$tpl_subtitleに入る文字列が、商品一覧ページと商品詳細ページで異なってしまう。
以下のようにカスタマイズしてみたが、汎用性には乏しいかな。
検証ももっと必要だし。
このカスタマイズによって、タイトルが
商品名 | カテゴリ名 | サイト名
と表示されるように。
現在作っているサイト構成では、
親カテゴリ(複数不可)
子カテゴリ(複数可)
商品
で統一しているけど、親カテゴリに複数登録する場合は非対応になってしまう。
商品詳細ページでは、子カテゴリは一つも表示しない。
data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php
に以下の関数を追記。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function lfGetPageTitle( $mode , $category_id = 0){ if ( $mode == 'search' ) { return "検索結果" ; } elseif ( $category_id == 0) { return "全商品" ; } else { //$arrCat = SC_Helper_DB_Ex::sfGetCat($category_id); //return $arrCat['name']; $objDb = new SC_Helper_DB_Ex(); $catStr = $objDb ->sfGetCatCombName( $category_id ); $arrCat = explode ( ' | ' , $catStr ); krsort( $arrCat ); $arrCat = implode( ' | ' , $arrCat ); return $arrCat ; } } |
data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php
に以下の関数を追記。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function getMainCatId( $product_id ){ $objDb = new SC_Helper_DB_Ex(); $mainCat = $objDb ->sfGetRootId( $product_id ); return $mainCat ; } function lfGetPageTitle( $mode , $category_id = 0){ if ( $mode == 'search' ) { return "検索結果" ; } elseif ( $category_id == 0) { return "全商品" ; } else { //$arrCat = SC_Helper_DB_Ex::sfGetCat($category_id); //return $arrCat['name']; $objDb = new SC_Helper_DB_Ex(); $catStr = $objDb ->sfGetCatCombName( $category_id ); $arrCat = explode ( ' | ' , $catStr ); krsort( $arrCat ); $mainCat = implode( ' | ' , $arrCat ); return $mainCat ; } } |
同ファイルのprocess()に以下を追加。
1 2 | $category_id = $this ->getMainCatId( $this ->tpl_product_id); $this ->mainCat = $this ->lfGetPageTitle( $mode , $category_id ); |
data/Smarty/templates/marikona/site_frame.tpl
のtitleタグを以下のように変更
1 2 3 4 5 6 7 8 9 | < title > <!--{if $tpl_subtitle|strlen >= 1}--> <!--{$tpl_subtitle|h}--> | <!--{/if}--> <!--{if $mainCat|strlen >= 1}--> <!--{$mainCat|h}--> | <!--{/if}--> <!--{$arrSiteInfo.shop_name|h}--> </ title > |
これで一応できたけど、改善の余地が多いなあ。