在模板中使用函数

函数调用方法,如果你觉得这样写起来比较麻烦,也可以直接这样写:

{:substr(strtoupper(md5($name)),0,3)}

变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。

系统自带的函数,一般在functions.php中 // C函数,获取配置名称 <title>{:C('WEB_SITE_TITLE')}</title> // U函数,获取URL地址 <a class="brand" href="{:U('index/index')}">OneThink</a>

自定义函数,一般定义在模块下common下的function.php或者公共模块common下的function.php中

Volist

模板中可以直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:

<volist name=":fun('arg')" id="vo">
{$vo.name}
</volist>

eq标签

<a href="{$nav.url|get_nav_url}" target="<eq name='nav.target' value='1'>_blank<else/>_self</eq>">{$nav.title}</a> // 读取session中的update变量

<eq name="Think.session.update" value="1">升级<else/>安装</eq></a></li> <eq name="Think.ACTION_NAME" value="mydocument">

If标签

<if condition="strpos($store_data['banner_id'],$vo['id'])!==false">class="selected"</if>

由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。 /*****字符串长度 / 子字符串********、 <if condition="mb_strlen($vo['remark'],'utf8') lt 65"> {:mb_substr($vo['remark'],0,64,'utf8')} <else /> {:mb_substr($vo['remark'],0,64,'utf8')}... </if>

<if condition="abslength($vo['remark']) lt 102"> {:csubstr($vo['remark'],0,102,'utf8')} <else /> {:csubstr($vo['remark'],0,100,'utf8')}... </if>

U函数(生成url)

标签组合应用

9、gt标签

<gt name="three_menu['allow_publish']" value="0">

10、present标签

<present name="three_menu['_child']">

本文分享自微信公众号 - Tech爬虫(php_pachong)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券