ecshop是一個功能方面比較完善的商城的程序,但是畢竟不同于一般的cms類系統。無法自定義每個分類的模板,這樣就造成了分類模板一成不變的樣式,對于美觀以及個性方面可能要差點。不過ec的開源給了php開發者一個很大的diy空間,ecshop的二次開發性也是蠻強大的。
下面是A5源碼實現的ecshop自定義分類模板的方法,子類可以繼承最頂級的模板。好處是不用修改數據庫,可以在后臺分類自定義模板。功能比較簡單,代碼也很少,只是一個小技巧,用ecshop的朋友可以來嘗試一下。
ecshop 自定義分類模板的方法實現步驟
打開根目錄的category.php文件(不要問我根目錄在哪里),找到大概401行 “$smarty->display(‘category.dwt’, $cache_id);”,將此行注釋掉或者刪除。在其下面添加下面代碼
$cat_arr = get_parent_cats($cat_id);
foreach ($cat_arr AS $val)
{
$cats['style']=$val['style'];
}
if(empty($cat['style']))
{
if(!empty($cats['style']))
{
$smarty->display($cats['style'], $cache_id);
}
else
{
$smarty->display('category.dwt', $cache_id);
}
}
else
{
$smarty->display($cat['style'], $cache_id);
}
代碼工作完成,然后進入后臺,商品分類,找到你要添加自定義模板的那個分類。在分類的樣式表文件后面的輸入框中,輸入你想要應用的模板文件的名稱,比如“category_shoes.dwt”(前提是你的主題文件中要存在此模板文件,必須是完整的模板文件名稱)
ok,工作完成,更新緩存去前臺參觀一下吧。
ecshop 自定義分類模板的方法注意要點
此方法應用的是ecshop自帶的“可以自定義分類的樣式表文件”的修改版本。如果你原來用了后臺分類的自定義分類的樣式表文件,那么只能告訴你——魚與熊掌不可兼得。(其實這種方法要比原來程序自帶的那種要強大)
使用了此方法就不要在模板中載入下面這段代碼了
<!-- {if $cat_style} -->
<link href="{$cat_style}" rel="stylesheet" type="text/css" />
<!-- {/if} -->
頂級分類定義了的話,子類可以繼承頂級分類的模板。如果頂級分類沒有定義,頂級分類和子類都會載入默認的模板樣式“$smarty->display(‘category.dwt’, $cache_id);”
子類同樣可以自定義模板,如果想要子類模板不一樣的話,同樣需要單獨定義。
ecshop 自定義分類模板的方法代碼解說
前面5行代碼實現調用當前類別的頂級分類的style,賦值到“ $cats['style'] ”
第6行判斷當前自定義模板是否為空,接下來,如果不存在就判斷頂級分類模板是否存在,存在就繼承頂級模板,不存在就調用默認的category.dwt
最后兩行是在當前自定義模板存在的情況下,就載入當前自定義的模板。
新聞熱點
疑難解答