目录
一、内建函数
1、if…elseif…else…if
基本语法
{if}
{elseif}
{else}
{/if}
功能:实现if选择结构
示例代码:
运行结果:写代码
2、ldelim、rdelim
{ldelim}
{rdelim}
功能:输出Smarty标签的左右分界符
示例代码:
运行效果:
3、literal
基本语法:
{literal}
内容(css代码或js代码)
{/literal}
功能:literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的css或 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.
示例代码:
效果如下:
4、php
基本语法
{php}
php代码
{/php}
功能:允许我们在Smarty模板引擎中使用php代码(但不推荐使用)
在Smarty3.0该语法已经废除,如要使用,请使用SmartyBC入口
示例:
效果:2015-02-11 00:00:00
5、section
基本语法:
{section name=名称 loop=循环数组(次数) start=开始(0) step=步阶(1) max=最大循环次数}
{sectionelse}
{/section}
功能:实现对数组(索引从0开始且连续)的遍历
参数说明:
loop:要遍历的数组
name:每次遍历时,系统会将遍历索引放入name中
start:默认开始的索引
step:步阶或步调,默认为1
max:最大循环次数
示例代码:
例1:遍历一维数组
运行结果:
section与foreach对比:
foreach可以实现对数组进行遍历,且每次遍历后,会将遍历的内容保存在item选项中,其是真正意义上的遍历数组。类似于PHP中的foreach循环
section也可以实现对数组的遍历,但每次循环时,系统只是通过loop确定数组中元素个数并确定循环次数,并将循环索引放入name选项中,其并不是真正意义上的遍历数组,只是类似于PHP代码中的for循环而已。
例2:section参数使用
效果如下:
例3:section遍历二维数组
运行结果:
section附加属性
{$smarty.section.name.index} :循环索引,默认从0开始
{$smarty.section.name.index_prev} :当前索引的上一次索引
{$smarty.section.name.index_next} :当前索引的下一次索引
{$smarty.section.name.iteration} :第几次循环(迭代)
{$smarty.section.name.first} :当第一次循环时,条件为真
{$smarty.section.name.last} :当最后一次循环时,条件为真
{$smarty.section.name.total} :循环的总次数
示例代码:
运行效果:
6、strip
{strip}
格式化代码
{/strip}
功能:去除元素的首尾空格及换行
示例代码:
运行效果:
鼠标右键查看源代码:
二、自定义函数(plugins)
1、counter
基本语法
{counter start=0 skip=2 print=false}
功能:计数器
参数说明:
start:默认开始数字,默认为1
skip:步阶或步调
print:当前是否输出
示例代码
运行效果:
2、cycle
功能:实现轮显操作
基本语法:
<tr bgcolor=“{cycle values="#eeeeee,#d0d0d0"}”>
示例代码:
运行效果:
3、debug
功能:实现对源代码的调试
基本语法:{debug}
示例代码:
{debug}
运行效果:
4、fetch
基本语法:
{fetch file=“载入文件路径” assign=“变量”}
引用:
{$变量}
示例代码:
运行效果:
5、html_image
基本语法
{html_image file="pumpkin.jpg"}
示例代码:
6、html_table
基本语法:
{html_table loop=$data cols=4 table_attr='border="0"'}
功能:把数组(简单)转化为表格
参数说明:
loop:要遍历的数组
cols:显示多少列
table_attr:表格属性,多个属性请用空格隔开,也可以使用style
示例代码:
运行效果:
7、html_checkboxes复选框
基本语法:
{html_checkboxes name=‘cust’ values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
参数说明
name:复选框的名称(主要用于接收)
values:复选的value属性的值(数组)
checked:选中的值(数组)
output:显示的值(数组)
sepatator:元素与元素的分隔符
示例代码:
运行效果:
8、html_options
基本语法:
<select name=customer_id>
{html_options values=$cust_ids selected=$customer_id output=$cust_names}
</select>
参数说明:
value:option选项的value值(数组)
selected:被选中的option (数组)
output:显示出的值(数组)
示例代码:
运行效果:
9、html_radios
基本语法:
{html_radios values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
参数说明:
values:radio选项的value值
checked:默认选中的值(要求是一个固定的值)
output:要输出的文本信息(数组)
separator:元素与元素之间的分隔符
示例代码:
运行效果: