titleタグなので、
data/Smarty/templates/作成したテンプレート名/site_frame.tpl
を修正。
デフォルトだと、
サイト名 / カテゴリ名
とか、
サイト名 / 商品名
となる。
これを
商品名 | カテゴリ | サイト名
のように変えたい。
デフォルトでは、
<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
に以下の関数を追記。
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
に以下の関数を追記。
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()に以下を追加。
$category_id = $this->getMainCatId($this->tpl_product_id); $this->mainCat = $this->lfGetPageTitle($mode,$category_id);
data/Smarty/templates/marikona/site_frame.tpl
のtitleタグを以下のように変更
<title>
<!--{if $tpl_subtitle|strlen >= 1}-->
<!--{$tpl_subtitle|h}--> |
<!--{/if}-->
<!--{if $mainCat|strlen >= 1}-->
<!--{$mainCat|h}--> |
<!--{/if}-->
<!--{$arrSiteInfo.shop_name|h}-->
</title>
これで一応できたけど、改善の余地が多いなあ。