标签&函数

样式引入

{$bd.sitetplpath}

//例如:引入bootstrap样式
<link href="{$bd.sitetplpath}/static/css/bootstrap.css" type="text/css" rel="stylesheet" />

//例如:引入jQuery
<script src="{$bd.sitetplpath}/static/js/jQuery-2.2.4.js" type="text/javascript"></script>

模板引用

//例如:引入头部文件
{include file="comm/head" /}

首页链接

#可以直接使用 /
<a href="/">首页</a>
#使用函数
<a href="{:url('/')}">首页</a>
#2.1.1新增
<a href="{$bd.homeurl}">首页</a>

语言包

开发多语言网站时,可以将常用的文字放进语言包内。

语言包的位置:app/index/lang/zh-cn/cms

其中zh-cn对应中文语言包,英文语言包则为en

# 语言包调用函数 __('Home') 模版中的写法 {:__('Home')}
<a href="/">{:__('Home')}</a>

HTML 转实体

模版中的变量默认都会被这个函数转义,防止 XSS 攻击

htmlspecialchars

//  例如:html字段
//  "<p>转义之前 </p>"
//  "<p>转义之后 </p>"
{$item.html|htmlspecialchars}

实体转 HTML

可以将模版中的变量还原成 HTML 格式,不过需要注意 XSS 安全问题,需要根据实际情况使用

html_entity_decode

//  例如:html字段
//  "<p>转义之前 </p>"
//  "<p>转义之后 </p>"
{$item.html|html_entity_decode}

时间格式化

date='Y-m-d H:i:s'

//例如:crate_time字段
{$item.crate_time|date='Y-m-d H:i:s'}

HTML 去除

drophtml

//例如:去掉内容的html
{$content.content|drophtml}

内容截取

bd_substr=0,10

//参数1:开始截取的位置,第一个就写0
//参数2:截取的长度
{$content.content|bd_substr=0,10}

自定义标签

{$bd.xx变量}

站点地图

{$bd.sitemap}

<a href="{$bd.sitemap}">{:__('Sitemap')}</a>

搜索路径

{$bd.scaction}

<form method="get" action="{$bd.scaction}">
    <input name="keyword"  type="text">
    <button>搜索</button>
</form>

验证码地址

{$bd.checkcode}

<img src="{$bd.checkcode}" width="100" height="31"/>

面包屑

#默认
{bd:position  /}
#自定义属性
{bd:position separator='>>' separatoricon='fa fa-angle-double-right' indextext='首页' indexicon='fa fa-home' /}
参数描述
separator分隔符,非必填,默认为>>
separatoricon分割图标,非必填,如使用图标字体:separatoricon='fa fa-angle-double-right'
indextext首页文本,非必填,默认为"首页"
indexicon首页图标,非必填,如使用图标字体:indexicon='fa fa-home'

当前网址

{$bd.httpurl}

当前页面

{$bd.pageurl}

二维码生成

{bd:qrcode string=***}

分割字符串成数组

explode(分隔符,字符串)

比如:在调用多图时,多图存储的是以逗号分隔的字符串,这时就需要将字符串分割成数组再进行遍历

#原字符串
"/uploads/20251118/9237jpg,/uploads/20251118/b43aef.jpg"
#分割字符串
explode(',',$content.pics)
# 完整调用
{foreach :explode(',',$content.pics) as $pic}
<img src="{$pic}" />
{/foreach}

JSON转换为数组

json_decode(字符串,true)

比如:使用自定义字段使用了数组格式,存储时是以字符串存储的,这时就需要将json转换为数组进行遍历

#原字符串
"[{"key":"键名","value":"键值"},{"key":"键名","value":"键值"}]"
#转换成数组
json_decode(字符串,true)
# 完整调用
{foreach :json_decode($content['ext_arr'],true) as $arr}
{$arr.key}
{$arr.value}
{/foreach}

获取数组中指定元素的值

支持版本 >= v2.1.1

/**
 * 获取数组中指定元素的值
 * @param mixed $array  数组
 * @param mixed $index  下标(默认为0)
 */
array_to_value($array,$index)

// 比如获取第二logo
{$bd.logo2|array_to_value}

更新时间:2026-03-18 12:23:54

文章目录