Smarty 图标

您可以根据商标声明使用 Smarty logo。

Smarty Template Engine Smarty Template Engine

如需赞助、广告、新闻或其他咨询,请通过以下方式与我们联系:

使用 Smarty 的网站

广告

修饰符

修饰符是在模板中将它们显示或用于其它上下文之前,应用于可变的小函数。修饰符可以串联使用。

mixed smarty_modifier_name( $value,  
  $param1);  
mixed $value;
[mixed $param1, ...];
 

修饰符插件的第一个参数是在其上操作修饰符的值。其它参数是可选的,具体取决于要执行何种操作类型。

修饰符必须返回其处理的结果。

示例 18.3。简单的修饰符插件

这个插件其实是对内置 PHP 函数的别名。它没有任何其它参数。

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     modifier.capitalize.php
 * Type:     modifier
 * Name:     capitalize
 * Purpose:  capitalize words in the string
 * -------------------------------------------------------------
 */
function smarty_modifier_capitalize($string)
{
    return ucwords($string);
}
?>


示例 18.4。更复杂的修饰符插件

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     modifier.truncate.php
 * Type:     modifier
 * Name:     truncate
 * Purpose:  Truncate a string to a certain length if necessary,
 *           optionally splitting in the middle of a word, and
 *           appending the $etc string.
 * -------------------------------------------------------------
 */
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()