欢迎光临
我们一直在努力

ecshop 自定义分类模板的方法(子类可以继承)

ecshop是一个功能方面比较完善的商城的程序,但是毕竟不同于一般的cms类系统。无法自定义每个分类的模板,这样就造成了分类模板一成不变的样式,对于美观以及个性方面可能要差点。不过ec的开源给了php开发者一个很大的diy空间,ecshop的二次开发性也是蛮强大的。

下面是我实现的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
最后两行是在当前自定义模板存在的情况下,就载入当前自定义的模板。


赞(0) 打赏
未经允许不得转载:刘旭的人个博客 » ecshop 自定义分类模板的方法(子类可以继承)
分享到: 更多 (0)
标签:

评论 抢沙发

评论前必须登录!

 

QQ :13945502电话:13913571631

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮