属性
大多数函数都接受指定或修改其行为的属性。Smarty 函数的属性很像 HTML 属性。静态值不必用引号括起来,但对于字面字符串则是必需的。可以使用带有或不带有修饰符的变量,这些变量不应被引号括起来。你甚至可以使用 PHP 函数结果、插件结果和复杂表达式。
有些属性需要布尔值(TRUE 或 FALSE)。这些可以被指定为 true 和 false。如果一个属性没有赋值,它将获得默认的布尔值 true。
示例
{include file="header.tpl"}
{include file="header.tpl" nocache} // 等价于 nocache=true
{include file="header.tpl" attrib_name="attrib value"}
{include file=$includeFile}
{include file=#includeFile# title="My Title"}
{assign var=foo value={counter}} // 插件结果
{assign var=foo value=substr($bar,2,5)} // PHP函数结果
{assign var=foo value=$bar|strlen} // 使用修饰符
{assign var=foo value=$buh+$bar|strlen} // 更复杂的表达式
{html_select_date display_days=true}
{mailto address="smarty@example.com"}
<select name="company_id">
{html_options options=$companies selected=$company_id}
</select>
注意
尽管 Smarty 可以处理一些非常复杂的表达式和语法,但一个经验法则是保持模板语法的简洁性并专注于呈现。如果你发现你的模板语法过于复杂,将那些与呈现无关的部分通过插件或修饰符转移到 PHP 中可能是个好主意。