smarty自带了一些变量调节器与内置函数,都在libs/plugins目录下,变量调节器以modifier开头,函数以function开头,而且我们可以自定义变量调节器与函数,熟练运用之后会极大地提高我们的开发效率。

一、格式

自定义的时候必须严格按照smarty提供的书写格式:

1.自定义变量调节器:

文件名格式:modifier.方法名.php,如:modifier.fontcolor.php

方法格式:function smarty_modifier_方法名(参数,参数……){ 方法 },如:function smarty_modifier_fontcolor($str,$color='green'){}。

注意:文件名格式与方法格式的方法名一定要相同。

2.自定义函数:

文件名格式:function.方法名.php,如:function.fontcolor.php

方法格式:function smarty_function_方法名(参数,参数……){ 方法 },如:function smarty_function_fontcolor($args,$smarty){}。

注意:文件名格式与方法格式的方法名一定要相同。

二、应用示例

变量调节器在使用时用"|"分隔,变量在前,变量调节器在后面,参数用":"调用

1.capitalize: 使变量内容里的每个单词的第一个字母大写,两个布尔型参数,默认均为false,第一个为true,则将带数字的单词首字母大写,第二个为true,则将单词内其他字母变为小写

<?php
$smarty->assign("articleTitle","next x-men film x3 deLayed");
?>

模板:

<{$articleTitle}><br />
<{$articleTitle|capitalize}><br />
<{$articleTitle|capitalize:true}><br />
<{$articleTitle|capitalize:true:true}><br />

输出:

next x-men film x3 deLayed
Next X-Men Film x3 DeLayed
Next X-Men Film X3 DeLayed
Next X-Men Film X3 Delayed

2.lower:将变量值转成小写字母;upper: 将变量值转成大写字母。

<?php
$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
?>

模板:

<{$articleTitle}><br />
<{$articleTitle|upper}><br />
<{$articleTitle|lower}>

输出:

If Strike isn't Settled Quickly it may Last a While.
IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
if strike isn't settled quickly it may last a while.

3.truncate: 截取字符串到指定长度,默认长度是80. 第二个参数可选,指定了截取后代替显示的字符。 截取后的字符长度是截取规定的长度加上第二个参数的字符长度。 默认truncate会尝试按单词进行截取。如果你希望按字符截取(单词可能会被截断),需要设置第三个参数TRUE

<?php
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
?>

模板:

<{$articleTitle}><br />
<{$articleTitle|truncate}><br />
<{$articleTitle|truncate:30}><br />
<{$articleTitle|truncate:30:""}><br />
<{$articleTitle|truncate:30:"---"}><br />
<{$articleTitle|truncate:30:"":true}><br />
<{$articleTitle|truncate:30:"...":true}><br />
<{$articleTitle|truncate:30:'..':true:true}>

输出:

Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
Two Sisters Re..ckout Counter.

4.复合变量调节器:

你可以联合使用多个修饰器。 它们会按复合的顺序来作用于变量,从左到右。 它们必须以| (竖线)进行分隔。

<?php

$smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');

?>

模板:

<{$articleTitle}><br />
<{$articleTitle|upper|fontcolor|truncate}><br />

输出:

Smokers are Productive, but Death Cuts Efficiency.
SMOKERS ARE PRODUCTIVE, BUT DEATH CUTS...

最新文章

  1. phpcms调取数据库的两种机制
  2. angular state和stateParams
  3. android SDK Manager 上载失败
  4. 自定义android程序一段时间无操作后的功能
  5. ASP.NET内置对象之Request传递请求对象
  6. [转]HTTPS那些事(一)HTTPS原理
  7. MyEclipse 8.0注冊码+原版下载_Java开发软件
  8. 进击的Android注入术《二》
  9. 解决Android5.0以下Dialog引起的内存泄漏
  10. 量化投资:第8节 A股市场的回测
  11. VisionPro笔记(1):动态创建控件
  12. AutoCAD批量导出点坐标
  13. linux(Redhat7)安装Apache
  14. Alpha阶段 - 博客链接合集
  15. Hadoop2.2.0集群的HA高可靠的最简单配置
  16. FFmpeg中的时间基(time_base), AV_TIME_BASE
  17. php ajax登录注册
  18. CSS个人笔记
  19. 使用 switch 对值进行分支
  20. day02Java基础学习笔记

热门文章

  1. html+css+JavaScript贪吃蛇
  2. 2017 Wuhan University Programming Contest (Online Round) C. Divide by Six 分析+模拟
  3. MAC信息摘要
  4. 【转】Monkey测试6-Monkey Test Log
  5. centos7下挂载U盘和移动硬盘
  6. android Service 保持不被杀死
  7. PHP+MySQL:测试连接+基本DB操作
  8. 3280 easyfinding
  9. EasyGBS国标流媒体服务器GB28181国标方案安装使用文档
  10. golang 模板(template)的常用基本语法