smarty模板的使用(2)


smarty模板的使用(2):

一.函数

每一个smarty标签输出一个变量或者调用某种函数.
在定界符内 函数(用’{‘包住)和其属性(用界符包住)将被处理和输出.例如:

{funcname attr1="val" attr2="val"} 

在模板里无论是内建函数还是自定义函数都有相同的语法.
内建函数将在smarty内部工作,例如 {if} , {section} and {strip} .他们不能被修改.
自定义函数通过插件机制起作用,它们是附加函数. 只要你喜欢,可以随意修改.你也可以自行添加.

1.单选框–html_radios
属性 类型 是否必须 缺省值 描述
name string No radio 单选按钮列表的名称
values array Yes, 或指定 options 属性 n/a 包含单选按钮值的数组
output array Yes, 或指定 options 属性 n/a 包含单选按钮显示值的数组
checked string No empty 已选定的元素
options associative array Yes, 或指定 values 属性 n/a 包含值和显示的关联数组
separator string No empty 分隔每个单选按钮的字符串

自定义函数 html_radios 根据给定的数据创建单选按钮组. 该函数可以指定哪个元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 options 替代. 所有的输出与 XHTML 兼容.

举例:

01.php
//单选框
$smarty -> assign('sex',array('man','woman'));
$smarty -> assign('out1',array("男","女"));
$smarty -> assign('sel1','man');
01.html
<!-- 单选框 -->
性别:{html_radios  name="sex" values=$sex checked=$sel1 output=$out1 }

单选框

2.多选框–html_checkboxes
属性 类型 是否必须 缺省值 描述
name string No checkbox 复选按钮组的名称
values array Yes, 或指定 options 属性 n/a 包含复选按钮组值的数组
output array Yes, 或指定 options 属性 n/a 包含复选按钮组显示值的数组
selected string/array No empty 已选定的元素或元素数组
options associative array Yes,或指定 values 属性 n/a 包含值和显示的关联数组
separator string No empty 分隔每个复选按钮的字符串
labels boolean No true 是否为每个复选按钮添加

自定义函数 html_checkboxes 根据给定的数据创建复选按钮组. 该函数可以指定哪些元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 options 替代. 所有的输出与 XHTML 兼容.

举例:

01.php
//复选框
$smarty -> assign('val',array(1,2,3,4,5));
$smarty -> assign('out',array("游泳","乒乓球","排球","羽毛球","篮球"));
$smarty -> assign('sel',5);//默认选择,单一
$smarty -> assign('valout',array('a'=>"看书",'b'=>"玩游戏",'c'=>"敲代码"));
$smarty -> assign('sel2',array('a','b','c'));//默认选择,多选
01.html
<!-- 方法一: -->
   {html_checkboxes name="hobby" values=$val output=$out selected=$sel }<br />
<!-- 方法二 -->
   {html_checkboxes name="hobby" options=$valout checked=$sel2 separator="<br />"}

3.下拉列表–html_options
属性 类型 是否必须 缺省值 描述
values array Yes, unless using options attribute n/a 包含下拉列表各元素值的数组
output array Yes, unless using options attribute n/a 包含下拉列表各元素显示值的数组
selected string/array No empty 已选定的元素或元素数组
options associative array Yes, unless using values and output n/a 包含值和显示的关联数组
name string No empty 下拉菜单的名称

自定义函数 html_options 根据给定的数据创建选项组. 该函数可以指定哪些元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 options 替代.

如果给定值是数组,将作为 OPTGROUP 处理,且支持递归. 所有的输出与 XHTML 兼容.

如果指定了可选属性 name,该选项列表将将被置于标签对中. 如果没有指定,那么只产生选项列表.

01.php
//下拉列表
$smarty -> assign('degree',array(0=>"请选择",1=>"幼儿园",2=>"小学",3=>"中学",4=>"大学"));
$smarty -> assign('sel3',0);
$smarty -> assign('sel4',array('1','3'));
01.html
方法一:
{html_options name="degree" options=$degree selected=$sel3}
方法二:
{html_options name="degree" options=$degree selected=$sel4 multipe="multipe"}

下拉列表

4.下拉日历–html_select_date
属性 类型 是否必须 缺省值 描述
prefix string No Date_ 变量名称前缀
time timestamp/YYYY-MM-DD No UNIX时间戳或年-月-日 使用时间类型(data/time)
start_year string No 年份或与当前年份的相对值 下拉列表中第一个年份,或与当前年份的相对值(正/负 几年)
end_year string No 同start_year 下拉列表中最后一个年份,或与当前年份的相对值(正/负 几年)
display_days boolean No true 是否显示天
display_months boolean No true 是否显示月
display_years boolean No true 是否显示年
month_format string No %B 月份的表示方法(strftime)
day_format string No %02d 天显示的格式(sprintf)
day_value_format string No %d 天的表示方法(sprintf)
year_as_text boolean No false 是否以文本方式显示年份
reverse_years boolean No false 逆序显示年份
field_array string No null 如果指定了名称,选定的区域将以[Day],[Year],[Month]的形式返回给PHP(待考)
day_size string No null 如果给定,为标签添加大小属性
month_size string No null 如果给定,为标签添加大小属性
year_size string No null 如果给定,为标签添加大小属性
all_extra string No null 如果给定,为所有标签添加附加属性
day_extra string No null 如果给定,为标签添加附加属性
month_extra string No null 如果给定,为标签添加附加属性
year_extra string No null 如果给定,为标签添加附加属性
field_order string No MDY 显示区域的顺序
field_separator string No \n 各区域间输出的分隔字符串
month_value_format string No %m 月份值的strftime表示方法,默认为 %m

自定义函数 html_select_date 用于创建日期下拉菜单. 它可以显示任意年月日.

01.html
{html_select_date}

下拉日历


文章作者: 桑落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 桑落 !
评论
  目录