zblogPHP为指定分类设置特殊模板样式

admin 3周前 83浏览 0评论

zblogPHP制作的各种CMS模板中,经常需要为分类列表模板设置不同模板样式,比如分类同时有图片模式、图文列表样式,此时分类模板的选择往往采用编辑分类的时候选择模板文件名,但不熟悉程序的小白来说这个方法还是有一定难度。

zblogPHP为指定分类设置特殊模板样式 zblog模板学习 第1张

如上图,很多模板用户其实并不清楚或者经常设置错这两项导致网站打不开,此方法个人一直比较别扭,增加了zblog模板新用户的使用难度,今天在升级ydproduct模板的时候,干脆抛弃这种方法,实现在后台主题配置内更直观的点选分类,实现更改所选分类模板样式。

zblogPHP为指定分类设置特殊模板样式 zblog模板学习 第2张

这种方法,更简单粗暴,点击其中的分类名称,就会自动填写分类ID,然后保存! 前台就可以改变所选分类模板的样式,一步到位,妈妈再也不用担心我搞坏网站了!


要实现上述的方法,主题配置内的点选多分类自动输入分类ID先不谈,先分享下模板前台如何判断:

首先,举例,已知分类ID为1,2,3,4,5 数字之间小逗号隔开,这一步很容易实现,下一步就是要在前台加入判断,当页面的分类ID等于 1,23,4,5其中任意一个数字ID时候就输出指定的模板样式,否则使用另一种样式。

php端:
$id = 2;
$subject = '1,2,3,4,5,12';
$pattern = '/(^|,)'.$id.'(,|$)/';
if(preg_match($pattern, $subject)){
echo $id;
}else{
echo 'error';
}

zblogPHP为指定分类设置特殊模板样式 zblog模板学习 第3张

那么如何直接在zblog模板文件中进行判断呢?

{php}

  $cateid = $category->ID;

  $subject = $zbp->Config( 'ydproduct' )->catestyle;

  $pattern = '/(^|,)'.$cateid.'(,|$)/';

  {/php}

  {if preg_match($pattern, $subject)}

  分类模板样式A

  {else}

  分类模板样式B

  {/if}

就这么简单!

评论