ECSHOP模版系统中显示标签主要是转换HTML代码,该特性使得在表格中交替输出颜色或轮转使用数组中的值变得很容易,或者是根据给定的数据创建选项组,创建日期下拉菜单,它可以显示任意年月日。亦或者是根据给定的数据创建单选按钮组等,本文就给大家讲解一下ECSHOP模版系统的显示标签。
属性 | 类型 | 是否必须 | 缺省值 | 描述 |
name | string | No | default | 轮转的名称 |
values | mixed | N/A | 待轮转的值,可以是用逗号分隔的列表(请查看 delimiter 属性)或一个包含多值的数组. | |
boolean | No | true | 是否输出值 | |
advance | boolean | No | true | 是否使用下一个值(为 false 时使用当前值) |
delimiter | string | No | , | 指出values 属性中使用的分隔符,默认是逗号. |
assign | string | No | N/A | 输出值将被赋给模板变量的名称 |
描述:
Cycle 用于轮转使用一组值. 该特性使得在表格中交替输出颜色或轮转使用数组中的值变得很容易。
如果需要在模板中使用多个轮转,需要给出唯一的 name 属性.
用户可以设置 print 属性为 false 强制不输出当前值. 该特性可以很方便地略过某个值.
advance 属性用于重复使用某个值. 当该属性设置为 false 时,下次调用该轮转时将输出同样的值.
如果指定了 “assign” 这个特殊属性,该轮转的输出值将被赋给由 assign 指定的模板变量,而不是直接输出。
例子:
{section name=rows loop=$data}<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}"><td>{$data[rows]}</td></tr>{/section}
输出:
<tr bgcolor="#eeeeee"><td>1</td></tr><tr bgcolor="#d0d0d0"><td>2</td></tr><tr bgcolor="#eeeeee"><td>3</td></tr>
属性 | 类型 | 是否必须 | 缺省值 | 描述 |
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,该选项列表将将被置于<select name=”groupname”></select>标签对中. 如果没有指定,那么只产生选项列表。
上表未提到的其它参数在 <select> 标签中以”名称/属性”对的方式显示. 如果没有指定可选属性 name 这些参数将被忽略。
例子:
index.php:
require('Smarty.class.php');$smarty = new Smarty;$smarty->assign('cust_ids', array(1000,1001,1002,1003));$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','JaneJohnson','Carlie Brown'));$smarty->assign('customer_id', 1001);$smarty->display('index.tpl');index.tpl:<select name=customer_id>{html_options values=$cust_ids selected=$customer_id output=$cust_names}</select>