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...

smarty变量调节器与函数的更多相关文章

  1. smarty 变量调节器

    变量调节器:<{$a|变量调节器}> 了解更多可以查询smarty手册 主要修改此页面的信息来了解变量调节器:main.php/main.html(0603) 1.利用给定的变量调节器 c ...

  2. 6月5 Smarty变量调节器

    变量调节器:<{$a|变量调节器}> 主要修改此页面的信息来了解变量调节器:test0605/main.php和模板文件:main0605.html 1.利用给定的变量调节器 capita ...

  3. smarty变量调节器

    smarty中变量调解器的作用:在模板中需要对PHP分配过来的变量在输出之前,对变量进行处理 注册变量调解器方式:$smarty->registerPlugin("modifier&q ...

  4. smarty变量调节器案例

    要求: 如下图,有内容的每一行,当鼠标放上去显示灰色区域,当鼠标离开灰色区域消失

  5. 第八十八天请假 PHP smarty模板 变量调节器,方法和块函数基本书写格式

    变量调节器 : 文件命名格式(modifier.名称.php)  前端调用方式<{变量|名称:参数:参数……}>可组合使用,用|隔开 <?php /* 命名格式 smarty_mod ...

  6. Smarty模板变量调节器

    Smarty模板变量调节器用法 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理 ...

  7. smarty学习——变量调节器(过滤器)

    变量调节器用于变量,自定义函数和字符串. 请使用 | 符号和调节器名称应用调节器.变量调节器由赋予的参数值决定其行为.参数由:符号分开. 比如进行大写转换的: upper demo: <br&g ...

  8. smarty 模板几个例子(变量调节器)

    一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...

  9. 四、smarty模板的自定义函数

    smarty模板的自定义函数(这里介绍的是常用) 分为三个种类: 1.  变量调节器 2.  函数 3.  块函数 三个种类插件的用法: 1.  变量调解器的用法, <{$var|myfun:a ...

随机推荐

  1. android studio- java注释自己动手弄起来

    今天写段子...程序段子.突然觉得AS默认的注释太简洁,不适合自己.于是,自己琢磨半天,大概知道了途径.结果,好好的一个coding之夜也无疾而终了...明天继续跟着包工头学搬砖. 注释设置途径: 1 ...

  2. iOS开发 多屏尺的自动适配(转)

    [iOS开发]多屏尺的自动适配 AutoLayout (纯代码方式) (2014-09-19 09:35:47) 转载▼ 标签: autolayout ios开发 xcode ui 分类: Xcode ...

  3. 虚拟化笔记04.OpenFiler.install

    4.OpenFiler install OPENFILER 介绍 1.OpenFiler 作用 OpenFiler 基于Linux 内核,主要作用是实现IP-SAN. 在VSPHERE中我们可以将VM ...

  4. repaint和reflow的相关知识

    一个页面由两部分组成: DOM:描述该页面的结构 render渲染:描述 DOM 节点 (nodes) 在页面上如何呈现 repaint重绘: 当 DOM 元素的属性发生变化 (如 color) 时, ...

  5. easyui data-options的使用

    easyui data-options的使用 data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我们可以对easyui组件的实例化可以完全写入到ht ...

  6. SQLServer -- 竟然默认不区分大小写

    SELECT * FROM USER_INFO WHERE USERNAME = :username; 这样的写法,:username的值竟然不区分大小写 原因:数据库的排序规则设置的是Chinese ...

  7. 【转】如何彻底删除SVN中的文件和文件夹(附恢复方法)

    这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的b ...

  8. 第一百六十七节,jQuery,DOM 节点操作,DOM 节点模型操作

    jQuery,DOM 节点操作,DOM 节点模型操作 学习要点: 1.创建节点 2.插入节点 3.包裹节点 4.节点操作 DOM 中有一个非常重要的功能,就是节点模型,也就是 DOM 中的“M”.页面 ...

  9. 这样就可以修改MathType公式编号格式吗

    MathType公式编辑器与很多的软件都可以兼容,其中很多的用户在word上写论文的时候,都会用到MathType.特别是当公式比较多时,可以使用MathType公式编号功能来对公式进行自动编号.但公 ...

  10. SpringAOP和AspectJ

    SpringAOP和AspectJ的关系 问题:之前对 SpringAOP和AspectJ的关系感到疑惑,因为曾经在书上看过SpringAOP集成了AspectJ,那么SpringAOP是直接使用了A ...