属性

大多数函数 都会使用属性来定义或者修改它们的行为。 Smarty函数中的属性比较像HTML语法中的属性。 静态值不需要引号引起来,但必须是纯字符串。 带或不带修饰器的变量都可以使用,而且也不需要引号, 甚至可以使用PHP函数的结果,插件结果和复杂的表达式。

一些属性要求布尔值(TRUEFALSE)。 它们可以直接写成truefalse。 如果属性没有被赋值,那么它会将true作为默认值。


Example 3.4. 函数属性语法

  1. {include file="header.tpl"}
  2.  
  3. {include file="header.tpl" nocache} // 等同于 nocache=true
  4.  
  5. {include file="header.tpl" attrib_name="attrib value"}
  6.  
  7. {include file=$includeFile}
  8.  
  9. {include file=#includeFile# title="My Title"}
  10.  
  11. {assign var=foo value={counter}} // 插件结果
  12.  
  13. {assign var=foo value=substr($bar,2,5)} // PHP函数结果
  14.  
  15. {assign var=foo value=$bar|strlen} // 使用修饰器
  16.  
  17. {assign var=foo value=$buh+$bar|strlen} // 复杂的表达式
  18.  
  19. {html_select_date display_days=true}
  20.  
  21. {mailto address="smarty@example.com"}
  22.  
  23. <select name="company_id">
  24. {html_options options=$companies selected=$company_id}
  25. </select>
  26.  

Note

虽然Smarty可以处理很复杂的表达式和语法,但是最好的方式还是 保持模板语法的简洁,模板层专注于显示。 如果发现你的模板语法过于复杂,那么建议是将这些逻辑代码写到PHP里, 然后在模板中通过插件或者修饰器来调用。

原文: https://www.smarty.net/docs/zh_CN/language.syntax.attributes.tpl