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

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

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

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

可以解决问题的方案

使用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对定制标签进行二次处理的效果。你学会了吗?