修饰器是一些å°�函数, 它们会对模æ�¿ä¸çš„å�˜é‡�,在显示之å‰�或使用å‰�进行处ç�†ã€‚ 修饰器å�¯ä»¥è¿žç”¨ã€‚
mixed smarty_modifier_name( |
$value, | Â |
| Â |
$param1); |
 |
mixed $value;[mixed $param1, ...];第一个å�‚数是修饰器所修饰的å�˜é‡�值。 余下的å�‚数是å�¯é€‰çš„ï¼Œå®ƒä»¬æ˜¯é™„åŠ ä¼ é€’ç»™ä¿®é¥°å™¨çš„å�‚数。
修饰器必须return处�的结果。
Example 18.3. 一个简�的修饰器
这个修饰器简å�•地用别å��替代了PHP内置的函数,ä¸�å¸¦å…¶ä»–çš„é™„åŠ å�‚数。
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: modifier.capitalize.php
* Type: modifier
* Name: capitalize
* Purpose: 让文å—首嗿¯�大写
* -------------------------------------------------------------
*/
function smarty_modifier_capitalize($string)
{
return ucwords($string);
}
?>
Example 18.4. 更��的修饰器
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: modifier.truncate.php
* Type: modifier
* Name: truncate
* Purpose: 截å�–å—符串长度,多余的部分会被$etcå—符串代替。
* -------------------------------------------------------------
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...',
$break_words = false)
{
if ($length == 0)
return '';
if (strlen($string) > $length) {
$length -= strlen($etc);
$fragment = substr($string, 0, $length+1);
if ($break_words)
$fragment = substr($fragment, 0, -1);
else
$fragment = preg_replace('/\s+(\S+)?$/', '', $fragment);
return $fragment.$etc;
} else
return $string;
}
?>
��:
registerPlugin(),
unregisterPlugin().
