PbootCms在模板中对定制标签中的内容进行二次处理

稿件作者 CMS博客 2020-05-11 10:41 CMS教程

需求场景

在模板制作过程中,会遇到这样的需求:

1、模板中的文案样式不统一,客户需要自己能修改

2、客户有多个销售QQ需要在页面展示

可以解决问题的方案

image.png

使用PbootCms中的定制标签功能,不断的增加标签,将标签集成进模板中,达到可自行修改的目的。

方案缺点很明显,很容易遇到不方便的情况,比如,客户需要多增加一个QQ号码,那么就需要新增定制标签,再将标签集成进模板。客户自己操作不来,意义就不大了。

优化方案

实现思路,我们使用编辑器中的多行文本框,一行一个内容。然后在模板中对多行文本框中的内容进行分割二次处理。

那么问题来了,怎样才能在模板中对定制标签的内容进行二次处理呢,这里又有2个方案。

方案1:

使用JS,对定制标签进行二次处理,简单举例

<div id="demo"></div>
<script>
$(function(){
    var str = '{label:qqgroup}'; //假设后台定制标签中有一组QQ号码,需要组合输出。
    var list = str.split("<br>"); //
    var html = '';
    $.each(list,function(index,value){
        html += "客服"+(index+1)+":"+value+"<br>";
    });
    $('#demo').html(html);
})
</script>

方案2:

直接在模板中读取定制标签的内容,使用原生PHP输出(这个方式更利于SEO)

重点代码,因为PB的模板解析执行顺序,{label:**}无法直接被php解析到,那么我们就只能自己读数据库了。

//假设后台有一个定制标签中是使用“|”分隔组合的一个下拉选项
$list = \core\basic\Db::table('ay_label')->field('value')->where("name='comtype'")->find();
$list = explode('|', $list->value);
foreach($list as $v){
    echo '<option value="'.$v.'">'.$v.'</option>';
}

这样我们就完成了在PbootCms模板中使用原生PHP对定制标签进行二次处理的效果。你学会了吗?

  • 分享:

文章评论(审核通过可见)

说点什么
共有0条评论