修饰是mint模板对变量的再次处理。
使用管道符(|)表示修饰,使用一对圆括号(( ))将参数值给修饰传递参数。比如使用default修饰
{$nullString|default('i-am-default')}
其中的$nullString是变量名,粗体的default是修饰名,斜体的i-am-default是它的第一个参数。参数中如果有字符串,必须加上引号。如果没有任何参数,可以不使用圆括号。
可以使用多重修饰,变量值流向是从左到右
{$string|cat("H","I","J")|lower}
示例中的$stirng先经过cat修饰(有三个参数"H","I","J")处理,再经过lower修饰处理。
例 5.1. 示例action
public function appIndex() {
IMint::setOptions(array("template-dir"=>".", "compile-dir"=>dirname(__FILE__) . "/compile-dir", "mode"=>"debug"));
$template = new IMintTemplate("test");
$this->x->y->z = array("a", "b", "c", "d", "e");
$this->array = array(1, 2, 3, 4, 5);
$this->nullString = "";
$this->string = "abcdefg";
$this->date = "now";
$this->html = "<span>aaa' \"quote\"'</span>";
$this->lines = "p1\np2\np3\np4";
return new IModelAndTemplate($this, "test");
}
date:{$a["date"]+10*3.14+2}<br/>
nullString:{$nullString}<br/>
default:{$nullString|default('i-am-default')}<br/>
upper:{$string|upper|lower(1)}<br/>
lower:{$string|lower}<br/>
captialize:{$string|capitalize}<br/>
cat:{$string|cat("H","I","J")|lower}<br/>
date_format:{$date|date_format('%Y,%m,%d')}<br/>
print:{$x.y.z|print|simple_text_format}<br/>
escape:{$html|escape}<br/>
indent:{$string|indent(4," ")}<br/>
nl2br:{$lines|nl2br}<br/>
regex_replace:{$string|regex_replace('/de/','DE')}<br/>
replace:{$string|replace('de','DE')}<br/>
spacify:{$string|spacify}<br/>
string_format:{$string|string_format('%s')}<br/>
left:{$string|left(4,1,' ..')}<br/>
right:{$string|right(4,1," ..")}<br/>
string:{$string|cat('h',-7*24*3600*)}<br/>
array:{$array|array_sum}<br/>
function:{$string|strlen}<br/>
例 5.3. 分析结果
date:33.4
nullString:
default:i-am-default
upper:abcdefg
lower:abcdefg
captialize:Abcdefg
cat:abcdefghij
date_format:2007,11,02
print:Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
)
escape:<span>aaa' "quote"'</span>
indent: abcdefg
nl2br:p1
p2
p3
p4
regex_replace:abcDEfg
replace:abcDEfg
spacify:a b c d e f g
string_format:abcdefg
left:abcd ..
right: ..defg
string:abcdefgh-604800
array:15
function:7
所有的系统函数和用户自定义函数默认都可以作为mint的修饰,由于这个特性,程序员可以非常轻松的添加自己的修饰。在模板中除了array_sum、strlen和nl2br三个系统定义的修饰外,其余都是mint内置的修饰。
格式化日期显示。
| 参数名 | 参数说明 |
| format | 可选,格式,如 %b %e, %Y |
| defaultDate | 可选,默认日期 |
转义字符串。
| 参数名 | 参数说明 |
| encType | 编码类型,默认为html,可以选的有html,htmlall,url,urlpathinfo,quotes,hex,hexentity,decentity,javascript,mail,nonstd |
| charset | 字符集,默认为ISO-8859-1 |
使用正则表达式执行字符串替换。
| 参数名 | 参数说明 |
| search | 搜索的正则表达式,默认为/.+/s |
| replace | 替代的字符串,默认为一个空格 |
从字符串左边起截取字符。
| 参数名 | 参数说明 |
| length | 截取的长度 |
| multi | 是否处理宽字节字符,默认为false |
| etc | 字符串多余的部分表示,默认没有 |
从字符串右边起截取n个字符。
| 参数名 | 参数说明 |
| length | 截取的长度 |
| multi | 是否处理宽字节字符,默认为false |
| etc | 字符串多余的部分表示,默认没有 |