smarty常规函数的使用方法

1、Counter: 用于输出一个记数过程.

属性

类型

是否必须

缺省值

描述

name

string

No

default

计数器的名称

start

number

No

1

记数器初始值

skip

number

No

1

记数器间隔、步长

direction

string

No

up

记数器方向,(增/减)

print

boolean

No

true

是否输出值

assign

string

No

n/a

输出值将被赋给模板变量的名称

 

<{counter start=0 skip=2 print=false}>
<{counter}><br>
<{counter}><br>

结果

2
4

2、Cycle :用于轮转使用一组值. 该特性使得在表格中交替输出颜色或轮转使用数组中的值变得很容易

属性

类型

是否必须

缺省值

描述

name

string

No

default

轮转的名称

values

mixed

Yes

N/A

待轮转的值,可以是用逗号分隔的列表(请查看 delimiter 属性)或一个包含多值的数组.

print

boolean

No

true

是否输出值

advance

boolean

No

true

是否使用下一个值(为 false 时使用当前值)

delimiter

string

No

,

指出values 属性中使用的分隔符,默认是逗号.

assign

string

No

n/a

输出值将被赋给模板变量的名称

 

<{section name=rows loop=$data}>

<tr bgcolor="<{cycle values="red,blue"}>">

<td><{$data[rows]}></td>

</tr>

<{/section}>

<tr bgcolor="red">

<td>aaa</td>

</tr>

<tr bgcolor="blue">

<td>bbb</td>

</tr>

<tr bgcolor="red">

<td>ccc</td>

</tr>

结果:aaa bbb ccc

3、eval :按处理模板的方式计算取得变量的值. 该特性可用于在配置文件中的标签/变量中嵌入其它模板标签/变量.

 

属性

类型

是否必须

缺省值

描述

var

mixed

Yes

n/a

待求值的变量(或字符串)

assign

string

No

n/a

输出值将被赋给模板变量的名称

4、Fetch: 用于从本地文件系统、HTTP或FTP上取得文件并显示文件的内容. 如果文件名称以"http://"开头,将取得该网站页面并显示. 如果文件名称以"ftp://"开头,将从ftp服务器取得该文件并显示.

<{fetch file="http://www.baidu.com"}>

属性

类型

是否必须

缺省值

描述

file

string

Yes

n/a

待请求的文件,http或ftp方式.

assign

string

No

n/a

输出值将被赋给模板变量的名称

 

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

 

属性

类型

是否必须

缺省值

描述

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

是否为每个复选按钮添加 <label> 标签


html_checkbox用来用给定的数据创建checkbox。name表示checkbox的名称,values表示checkbox的值,output表示checkbox的显示,selected表示被选选项的值,options表示一组checkbox的值和显示,separator表示分割每个checkbox的符号,labels表示给输出添加标签,默认为true。 

   $arr1=array("a"=>"aaaa","b"=>"bbbb","c"=>"ccccc","d"=>"dddd");
   $arr2=array(a,b);
   $smarty->assign("arr1",$arr1);
   $smarty->assign("arr2",$arr2);
   
   $smarty->display("login.html"); 

   <{html_checkboxes name=hobby options=$arr1 selected=$arr2 }>

结果:
 

6、html_image: 产生一个图象的 HTML 标签. 如果没有提供高度和宽度值,将根据图象的实际大小自动取得.不建议使用,一般使用html的<img 就行

属性

类型

是否必须

缺省值

描述

file

string

Yes

n/a

图象文件的名称或路径

border

string

No

0

图象边框大小

height

string

No

actual image height

显示图象高度

width

string

No

actual image width

显示图象宽度

basedir

string

no

web server doc root

图象文件位置的相对路径

alt

string

no

""

可选图象描述(鼠标指向图象或图象文件不存在时显示的字符串信息)

href

string

no

n/a

图象链接到的地址

 

<{html_image file="d.jpg"}>

结果:

7、html_options 根据给定的数据创建选项组. 该函数可以指定哪些元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 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

下拉菜单的名称

 

index.php:

 

require('Smarty.class.php');

$smarty = new Smarty;

$smarty->assign('cust_options', array(

                       1001 => 'Joe Schmoe',

                       1002 => 'Jack Smith',

                       1003 => 'Jane Johnson',

                       1004 => 'Charlie Brown'));

$smarty->assign('customer_id', 1001);

$smarty->display('index.tpl');

 

index.tpl:

 

<select name=customer_id>

        {html_options options=$cust_options selected=$customer_id}

</select>


OUTPUT: (both examples)

 

<select name=customer_id>

        <option value="1000">Joe Schmoe</option>

        <option value="1001" selected="selected">Jack Smith</option>

        <option value="1002">Jane Johnson</option>

        <option value="1003">Charlie Brown</option>

</select>

结果:

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

属性

类型

是否必须

缺省值

描述

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

分隔每个单选按钮的字符串

 

a.html

<{html_radios name="id" options=$cust_radios checked=$customer_id separator="<br />"}>

 

<input type="radio" name="id[]" value="1000">Joe Schmoe<br />

<input type="radio" name="id[]" value="1001" checked="checked"><br />

<input type="radio" name="id[]" value="1002">Jane Johnson<br />

<input type="radio" name="id[]" value="1003">Charlie Brown<br />

Index.php

require("Smarty.class.php");

$smarty = new Smary;

$smarty->assign('cust_options', array(

        1001 => 'Joe Schmoe',

        1002 => 'Jack Smith',

        1003 => 'Jane Johnson',

        1004 => 'Charlie Brown'));

$smarty->assign('customer_id', 1001);

$smarty->display("a.html");

结果:

 

9、html_select_date: 用于创建日期下拉菜单. 它可以显示任意年月日.

prefix定义各个下拉列表名字的前缀,默认为Date_。time决定使用的时间,默认是当前时间。start_year决定下拉列表开始的年份,可以用年份表示,也可以用与当前年份的相对年数来表示。默认是当前年份。end_year决定下拉列表结束的年份,可以用年份表示,也可以用与当前年份的相对年数来表示。默认是当前年份。display_days决定是否显示日期。display_months决定是否显示月份。display_years决定是否显示年份。month_format决定显示月份的格式,默认为%B。day_format决定显示日期的格式,默认为%02d。day_value_format决定日期值的格式,默认为%d。month_value_format决定月份值的格式,默认为%m。year_as_text决定是否将年份按文本格式输出。reverse_years决定是否反向输出各年份。field_array用来取得一组变量,可以用name[Day],name[Month],name[Year]的方式从form取得获得的值。day_size,month_size,year_size添加大小标签。all_extra,day_extra,month_extra,year_extra添加额外的属性到select或input标签。field_order决定年月日下拉列表的顺序,默认为MDY。field_separator不同下拉列表之间的分隔符,默认是\n。year_empty,month_empty,day_empty是在各下拉列表第一栏显示的内容。 

<{ html_select_date start_year=2000 end_yead=2020 }>


结果:

smarty常规函数的使用方法 - 翔 - 969774007的博客
 

10、html_select_time :用于创建时间下拉菜单. 它可以显示任意时分秒


prefix定义各个下拉列表名字的前缀,默认为Time_。time决定使用的时间,默认是当前时间。display_hours决定是否显示小时。display_minutes决定是否显示分钟。display_seconds决定是否显示秒数。display_meridian 决定是否显示上午或下午,即显示am/pm。use_24_hours 决定是否24小时制。minute_interval 决定分钟之间的间隔。second_interval 决定秒数之间的间隔。field_array用来取得一组变量,可以用name[Hour],name[Minute],name[Second]的方式从form取得获得的值。all_extra,hour_extra,minute_extra,second_extra ,meridian_extra添加额外的属性到select或input标签。 



<{html_select_time use_24_hours=true}>


结果:smarty常规函数的使用方法 - 翔 - 969774007的博客

 

11、html_table 将数组中的数据填充到 HTML 表格中. cols 属性决定表格有多少列. table_attr , tr_attr 和 td_attr 属性决定表格中 tr 和 td 标签的一些附加属性. 如果 tr_attr 和 td_attr 属性值为数组,将轮流使用其中的值. 如果指定了 trailpad 属性,将在表尾最后一行附加一些数据.   不是很灵活  不建议使用。。。


loop定义用于循环的一组数据。cols决定列的数目,rows决定行的数目,如果其中一个为空,另一个有值,则根据元素个数和有值的属性来计算另一个的值,两者的默认值为3。inner决定元素的列举方向cols则列跟着列排列,rows则行跟着行排列,默认为cols。table_attr,tr_attr,td_attr分别为table,tr,td增加标签,如果tr_attr,td_attr是数组,将会循环增加标签。trailpad用来填充最后一行没有值的单元格,默认是 。hdir决定每行元素的排列方向,从左到右right或从右到左left,默认为right。vdir决定每列的排列方向,从上到下down或从下到上up,默认为down。 

 

12、math :允许模板设计者在模板中进行数学表达式运算. 均表达式中可以使用任何数值类型的变量,结果在 math 标签的位置输出. 表达式中使用的变量被当做参数传递给函数,可以是模板变量或静态值. 目前可以使用的运算符有:+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan .关于数学函数的详细信息,请查看 PHP 文档.

属性

类型

是否必须

缺省值

描述

equation

string

Yes

n/a

待执行的表达式

format

string

No

n/a

结果的格式(遵从sprintf函数)

var

numeric

Yes

n/a

表达式变量值

assign

string

No

n/a

输出值将被赋给模板变量的名称

[var ...]

numeric

Yes

n/a

表达式变量值

<{math equation=”(x+y)/z” x=2 y=10 z=2}>

结果:6

13、popup 用于创建javascript弹出窗口

 

首先下载overlib压缩包,其实就是一个写好的js库,我们这里拿来直接使用。

下载地址 http://www.bosrup.com/web/overlib/?Download   


下载后解压成一个文件夹放到你的项目的根目录下,

接着引入js库  <{popup_init src='/shiyan/smarty/overlib/overlib.js'}>

简单的使用案例如下:

 <a href="#"  <{popup text="<ul><li>aaaaaaaaa</li><li>bbbbbb</li><li>ccccccccc</li></ul>"}> >这里是链接</a>

具体的属性我就不一样做了,可以参考手册


14、textformat 用于格式化文本. 该函数主要清理空格和特殊字符,对段落按单词边界换行和行缩进等段落格式化处理.


textformat用来格式化文本,他会去掉空格和特殊字符,和规定行宽和缩进。style规定当前的格式,indent规定缩进的位数。indent_first规定第一行的缩进。indent_char用来缩进的字符,默认是一个空格。wrap规定行宽,即一行的字符数,默认是80。wrap_char规定每行的分隔符,默认是\n。wrap_cut决定是否分割单词。assign将输出分配给变量。

<{textformat wrap=40}>

 

This is foo.

This is foo.

This is foo.

This is foo.

This is foo.

This is foo.

 

This is bar.

 

bar foo bar foo foo.

bar foo bar foo foo.

bar foo bar foo foo.

bar foo bar foo foo.

bar foo bar foo foo.

bar foo bar foo foo.

bar foo bar foo foo.

 

<{/textformat}>

结果:

This is foo. This is foo. This is foo. This is foo. This is foo. This is foo. This is bar. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo.


15、mailto 
使用mailto函数能使网络蜘蛛很难获取你的email地址,但是能在网页上正常显示,因为他把email地址进行了加密处理。address是必须的,定义email地址。text是显示在页面上的文本内容,默认是email地址。encode是加密email地址的方式,可以是none,hex或javascript,默认是none。如果要把邮件发给其他的邮箱,可以用cc抄送,email地址之间用,分割。bcc则为密件抄送。subject是邮件主题。newsgroups是发表内容的新闻组,新闻组之间用,隔开。extra添加附加标签。followupto意思不知。 

例:   <{mailto [email protected] text=154654 subject=这里是主题}>


16、debug 
debug可以显示所有分配了值的变量,但是不显示模板内容,output属性决定显示的格式html或javascript,默认是html. 

17、assign 
assign用来在执行模板时分配变量值.var,value是必须的参数.var为要分配值的变量名,value为分配的值. 


你可能感兴趣的:(smarty常规函数的使用方法)