Smarty基本知识简介
发布时间:2016-08-05 10:53:36 来源:51推一把
【摘要】Smarty基本知识简介,变量,属性,等常用方法说明
Smarty定界符
默认情况下是{ },可以自定义。
Smarty Comments[注释]
模板注释被*号包围,例如{* this is a comment *}
Smarty函数
每一个smarty标签输出一个变量或者调用某种函数。在定界符内 函数(用{包住)和其属性(用界符包住)将被处理和输出。
例如: {funcname attr1="val" attr2="val"}。
{config_load file="colors.conf"}
{include file="header.tpl"}
{if $highlight_name}
Welcome, <font color="{#fontColor#}">{$name}!</font>
{else}
Welcome, {$name}!
{/if}
{include file="footer.tpl"}
Smarty Attributes[属性]
smarty函数的属性很像HTML中的属性。静态数值不需要加引号,但是字符串建议使用引号。如果用变量作属性,它们也不能加引号。
一些属性用到了布尔值(真或假)。它们不需要加引号,可以是true,on,yes或者false,off,no。
#函数属性语法
{include file="header.tpl"}
{include file=$includeFile}
{include file=#includeFile#}
{html_select_date display_days=yes}
<SELECT name=company>
{html_options values=$vals selected=$selected output=$output}
</SELECT>
Smarty双引号里值的嵌入
Smarty可以识别嵌入在双引号中的变量,只要此变量只包含数字、字母、下划线和中括号[].对于其他的符号(句号、对象相关的,等等)此变量必须用两个`(此符号和‘ ~ 在同一个键上,一般在ESC键下面一个键上)包住。
#样例
{func var="test $foo test"} <-- sees $foo
{func var="test $foo_bar test"} <-- sees $foo_bar
{func var="test $foo[0] test"} <-- sees $foo[0]
{func var="test $foo[bar] test"} <-- sees $foo[bar]
{func var="test $foo.bar test"} <-- sees $foo (not $foo.bar)
{func var="test `$foo.bar` test"} <-- sees $foo.bar
PRACTICAL EXAMPLES:
{include file="subdir/$tpl_name.tpl"} <-- will replace $tpl_name with value
{cycle values="one,two,`$smarty.config.myval`"} <-- must have backticks
Smarty数学运算
数学运算可以直接应用到变量
#样例
{$foo+1}
{$foo*$bar}
{* some more complicated examples *}
{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
{assign var="foo" value="`$foo+$bar`"}
Smarty变量
内容列表
$template_dir [模板目录变量]
[从PHP分配的变量]
[从配置文件读取的变量]
[{$smarty} 保留变量]
Smarty有几种不同类型的变量。
变量 的类型取决于它的前缀是什么符号(或者被什么符号包围)
Smarty的变量可以直接被输出或者作为函数属性和修饰符(modifiers)的参数,或者用于内部的条件表达式等等。
Smarty从配置文件读取的变量
配置文件中的变量需要通过用两个"#"或者是smarty的保留变量$smarty.config.来调用。第二种语法在变量作为属性值并被引号括住的时候非常有用。
#样例
{include file="#includefile#"} 这样#includefile#将被当作字符处理,而不表示配置文件变量,但可以这样表示 {include file="`$smarty.config.includefile`"}不要忘了加``)
Smarty变量调节器
capitalize、count_characters、count_paragraphs、count_sentences、count_words、date_format、default、escape、indent、lower、nl2br、regex_replace、replace、spacify、string_format、strip、strip_tags、truncate、upper、wordwrap
变量调节器用于变量,自定义函数和字符串。 请使用‘|’符号和调节器名称应用调节器。 变量调节器由赋予的参数值决定其行为。 参数由‘:’符号分开。
#样例
{* Uppercase the title *}
<h2>{$title|upper}</h2>
{* Truncate the topic to 40 characters use ... at the end *}
Topic: {$topic|truncate:40:"..."}
{* format a literal string *}
{"now"|date_format:"%Y/%m/%d"}
{* apply modifier to a custom function *}
{mailto|upper address="me@domain.dom"}
如果你给数组变量应用单值变量的调节,结果是数组的每个值都被调节。 如果你只想要调节器用一个值调节整个数组,你必须在调节器名字前加上@符号。 例如: {$articleTitle|@count}(这将会在 $articleTitle 数组里输出元素的数目)
Smarty组合修改器
对于同一个变量,你可以使用多个修改器。它们将从左到右按照设定好的顺序被依次组合使用。使用时必须要用"|"字符作为它们之间的分隔符。
{$articleTitle|lower|spacify|truncate:30:". . ."}
默认情况下是{ },可以自定义。
Smarty Comments[注释]
模板注释被*号包围,例如{* this is a comment *}
Smarty函数
每一个smarty标签输出一个变量或者调用某种函数。在定界符内 函数(用{包住)和其属性(用界符包住)将被处理和输出。
例如: {funcname attr1="val" attr2="val"}。
{config_load file="colors.conf"}
{include file="header.tpl"}
{if $highlight_name}
Welcome, <font color="{#fontColor#}">{$name}!</font>
{else}
Welcome, {$name}!
{/if}
{include file="footer.tpl"}
Smarty Attributes[属性]
smarty函数的属性很像HTML中的属性。静态数值不需要加引号,但是字符串建议使用引号。如果用变量作属性,它们也不能加引号。
一些属性用到了布尔值(真或假)。它们不需要加引号,可以是true,on,yes或者false,off,no。
#函数属性语法
{include file="header.tpl"}
{include file=$includeFile}
{include file=#includeFile#}
{html_select_date display_days=yes}
<SELECT name=company>
{html_options values=$vals selected=$selected output=$output}
</SELECT>
Smarty双引号里值的嵌入
Smarty可以识别嵌入在双引号中的变量,只要此变量只包含数字、字母、下划线和中括号[].对于其他的符号(句号、对象相关的,等等)此变量必须用两个`(此符号和‘ ~ 在同一个键上,一般在ESC键下面一个键上)包住。
#样例
{func var="test $foo test"} <-- sees $foo
{func var="test $foo_bar test"} <-- sees $foo_bar
{func var="test $foo[0] test"} <-- sees $foo[0]
{func var="test $foo[bar] test"} <-- sees $foo[bar]
{func var="test $foo.bar test"} <-- sees $foo (not $foo.bar)
{func var="test `$foo.bar` test"} <-- sees $foo.bar
PRACTICAL EXAMPLES:
{include file="subdir/$tpl_name.tpl"} <-- will replace $tpl_name with value
{cycle values="one,two,`$smarty.config.myval`"} <-- must have backticks
Smarty数学运算
数学运算可以直接应用到变量
#样例
{$foo+1}
{$foo*$bar}
{* some more complicated examples *}
{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
{assign var="foo" value="`$foo+$bar`"}
Smarty变量
内容列表
$template_dir [模板目录变量]
[从PHP分配的变量]
[从配置文件读取的变量]
[{$smarty} 保留变量]
Smarty有几种不同类型的变量。
变量 的类型取决于它的前缀是什么符号(或者被什么符号包围)
Smarty的变量可以直接被输出或者作为函数属性和修饰符(modifiers)的参数,或者用于内部的条件表达式等等。
Smarty从配置文件读取的变量
配置文件中的变量需要通过用两个"#"或者是smarty的保留变量$smarty.config.来调用。第二种语法在变量作为属性值并被引号括住的时候非常有用。
#样例
{include file="#includefile#"} 这样#includefile#将被当作字符处理,而不表示配置文件变量,但可以这样表示 {include file="`$smarty.config.includefile`"}不要忘了加``)
Smarty变量调节器
capitalize、count_characters、count_paragraphs、count_sentences、count_words、date_format、default、escape、indent、lower、nl2br、regex_replace、replace、spacify、string_format、strip、strip_tags、truncate、upper、wordwrap
变量调节器用于变量,自定义函数和字符串。 请使用‘|’符号和调节器名称应用调节器。 变量调节器由赋予的参数值决定其行为。 参数由‘:’符号分开。
#样例
{* Uppercase the title *}
<h2>{$title|upper}</h2>
{* Truncate the topic to 40 characters use ... at the end *}
Topic: {$topic|truncate:40:"..."}
{* format a literal string *}
{"now"|date_format:"%Y/%m/%d"}
{* apply modifier to a custom function *}
{mailto|upper address="me@domain.dom"}
如果你给数组变量应用单值变量的调节,结果是数组的每个值都被调节。 如果你只想要调节器用一个值调节整个数组,你必须在调节器名字前加上@符号。 例如: {$articleTitle|@count}(这将会在 $articleTitle 数组里输出元素的数目)
Smarty组合修改器
对于同一个变量,你可以使用多个修改器。它们将从左到右按照设定好的顺序被依次组合使用。使用时必须要用"|"字符作为它们之间的分隔符。
{$articleTitle|lower|spacify|truncate:30:". . ."}