您的位置:首页 > 编程语言 > PHP开发

PHP模板学习--Smarty 内置函数

2014-05-06 22:07 357 查看
{$var=...}         {assign}函数的缩写。你可以在模板内对变量进行赋值,或者对数组元素进行赋值。

{append}        可以在 运行时 为数组变量增加或者创建值。

                         参数:1.赋值的变量名称var  2.值value  3.元素的新索引index,如果不指定,则默认加到数组末尾

                                     4.变量的访问范围:'parent'(包含它的模板可见),'root'(相关模板可见) 或 'global'(全部模板可见)。格式:scope="global"。

{assign}         用于在模板运行期间赋值给变量。参数:要赋值的变量  2.值  3.变量作用范围  还可以指定属性:不缓存变量 nocache。

在PHP脚本中获取模板内的变量:$smarty->getTemplateVars('foo');注意,必须在模板被显示(display)后才能获取到模板内的变量,否则为空null。

{block}{/block}            可在模板上定义一块区域,以进行模板继承。子模板中的{block}区域代码,将会替换父模板对应的区域代码。

                                      在子模板的{block}中定义 append 或 prepend,可以使子模板附加在父模板 {block}区域的后面或前面。

                                      在{block}内容中使用{$smarty.block.parent},可以获得父模板的区域代码。{block}可以嵌套使用。

                                      可选属性(仅在子模板中使用):append、prepend、hide、nocache。必须指定模板名称。

                                      在父模板中{block}标签内可以通过{$smarty.block.child}来获得子模板中的内容,同样,在子模板中可以通过{$smarty.block.parent}获取父模板内容。

                                      如果在子模板中不指定{block}append还是prepend,默认覆盖父模板中对应{block}{/block}中的内容。

{call}                             可以调用一个通过 {function} 标签来定义的模板函数,如同调用插件函数一样。也可以直接使用{functionname ...}的方式来使用函数。

                                      属性:1.name模板函数的名称   2.assign将函数的返回内容赋值到指定变量   3.传递给模板函数的参数。

{capture}{/capture}             可以捕获标记范围内的输出内容,存到变量中而不显示。 任何在{capture name='foo'} 和 {/capture} 之间的内容都会被捕获到变量,

                                               变量名可以通过name属性来指定。{capture}可以被嵌套使用。使用name捕获内容到$smarty.capture数组中,而assign则捕获到变量中。

                                               参数:1.name捕获区域的名称    2.assign捕获内容后赋值的变量名    3.append将捕获的内容增加到数组中      4.nocache

{config_load}              从配置文件中加载配置变量#variables#。注意,载入时配置文件中的全局变量也会被同时载入

                                      参数:1.file文件名 2.section载入配置变量的段落 3.配置变量的作用范围,取值local, parent 或 global.

{debug}                        会在页面上显示调试控制台。 它将忽略PHP代码中的debug配置。 在它执行的过程中,仅可以显示赋值变量。

                                       然而,你可以看到模板范围内全部可用的变量。如果开启了缓存,而{debug}在缓存的页面中执行,那么它仅会显示从缓存 文件中赋值到模板的变量。

{extends}                      继承模板。属性:file,指定要继承的模板名称。

{for}{forelse} {/for}            用于创建一个简单的循环。{for $var=$start to $end}步长1的简单循环。属性:max,指定循环的最大次数。@total为循环总次数

                                            {for $var=$start to $end step $step}指定步长的循环。{forelse}在循环不能遍历的时候执行。

{foreach},{foreachelse}   用于循环数组。属性:@index   是当前数组索引,从0开始计算。

                                                                                    @iteration  是当前循环的次数,和index不同,iteration是从1开始。 iteration在每次循环的时候都会加一。

                                                                                                     iteration几个用法: is div by num 判断被num整除    is even/odd by num  被num除后为偶数/奇数

                                                                                    @first          首次循环时为真。

                                                                                    @last          最后一次循环时为真。                      

                                                                                    @show      show属性是在{foreach}循环执行之后, 检测循环是否显示数据的判断。 show是一个布尔值。

                                                                                    @total        total是整个{foreach}循环的次数。 total可以在{foreach}内部,或者之后使用。

{break}/{continue}            用于循环,作用与PHP的break和continue语句一样。

{function name args=value}{/function}             在模板内定义一个函数,调用时使用{name args=value}的格式调用。

{if}{else}{elseif}{else}                 与PHP的if、elseif、else一样,所有的PHP函数和表达式在{if}{/if}之间都有效。

                                                       如果开启了安全机制,则只有$php_functions设置允许的PHP函数才能使用。

{include}                            将其他模板载入到当前模板中。被载入模板的变量仍然可用。主要属性:file文件来源、assign将内容赋值给变量而不是输出。

{include_php}                  载入php文件到模板。默认情况下载入时该php文件会被执行一次。此函数已废弃。

{ldelim}{rdelim}               避免解析模板定界符,也可以使用{literal}{/literal}。
{literal}{/literal}                 在{literal}{/literal}之间的任何内容将不被解析,保持原样输出。

{nocache}{/nocache}      用于关闭一个模块区域的缓存。

{section}{/section}           可以循环遍历连续数字索引的数组, 区别于{foreach} 可以循环任意关联数组。参数:name、loop、start、step、max、show
                                            属性:index,
index_prev, index_next,
iteration, first, last,
rownum, loop,
show, total.

{setfilter}...{/setfilter}        可以使用模板定义的变量过滤器。

{strip}{/strip}                      {strip}{/strip}的标签都会被过滤掉多余的空格和回车, 并把全部标签放在同一行内显示。

{while}{/while}                   与PHP中的while几乎无异,任何的PHP表达式和函数在while标签内都是可用的。

下面仅为格式示例:

{$user.name.first="Bob"}

{$users[]="Bob"}

{append var='name' value='Meyer' index='last'}

{assign var=foo value="bar" scope="global"}

{assign "foo" "bar" scope="global" nocache}   简写方式

{block}格式:

父模板:

<title>{block "title"}Default Title{/block}</title>

子模板:

{extends file="parent.tpl"} {block name="title"}Page Title{/block}

之后display子模板即可。

{call}格式:

{call name=menu data=$menu} 

{call menu data=$menu}  简写方式

{foreach $items as $item}

            {$item.name}<hr/>

    {if $item@last}

              <div id="total">

                       {$item@total} items

              </div>

    {/if}

{foreachelse}

       ... no items to loop ...

{/foreach}

{nocache}

      {$smarty.now|date_format}

{/nocache}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  smarty php