需求场景
在模板制作过程中,会遇到这样的需求:
1、模板中的文案样式不统一,客户需要自己能修改
2、客户有多个销售QQ需要在页面展示
可以解决问题的方案
使用PbootCms中的定制标签功能,不断的增加标签,将标签集成进模板中,达到可自行修改的目的。
方案缺点很明显,很容易遇到不方便的情况,比如,客户需要多增加一个QQ号码,那么就需要新增定制标签,再将标签集成进模板。客户自己操作不来,意义就不大了。
优化方案
实现思路,我们使用编辑器中的多行文本框,一行一个内容。然后在模板中对多行文本框中的内容进行分割二次处理。
那么问题来了,怎样才能在模板中对定制标签的内容进行二次处理呢,这里又有2个方案。
方案1:
使用JS,对定制标签进行二次处理,简单举例
$(function(){
varstr='{label:qqgroup}';//假设后台定制标签中有一组QQ号码,需要组合输出。
varlist=str.split("
");//
varhtml='';
$.each(list,function(index,value){
html+="客服"+(index+1)+":"+value+"
";
});
$('#demo').html(html);
})
方案2:
直接在模板中读取定制标签的内容,使用原生PHP输出(这个方式更利于SEO)
重点代码,因为PB的模板解析执行顺序,{label:**}无法直接被php解析到,那么我们就只能自己读数据库了。//假设后台有一个定制标签中是使用“|”分隔组合的一个下拉选项
$list=\core\basic\Db::table('ay_label')->field('value')->where("name='comtype'")->find();
$list=explode('|',$list->value);
foreach($listas$v){
echo''.$v.'';
}
这样我们就完成了在PbootCms模板中使用原生PHP对定制标签进行二次处理的效果。你学会了吗?