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>
これで一応できたけど、改善の余地が多いなあ。