20150211--Smarty2-01

image

image

模板引擎——Smarty下

目录

模板引擎——Smarty 1

一、内建函数 2

1if…elseif…else…if 2

2ldelimrdelim 2

3literal 3

4php 3

5section 4

6strip 6

二、自定义函数(plugins 7

1counter 7

2cycle 8

3debug 8

4fetch 9

5html_image 10

6html_table 10

7html_checkboxes复选框 10

8html_options 11

9html_radios 11

三、综合案例——PHP+Smarty完成数据分页 12

1、数据库设计 12

2、设计HTML界面(ok 12

3、编写程序 12

四、程序篇 13

1、常量 13

2、变量 13

3、常用方法 14

五、缓存篇 17

1Smarty中的缓存 17

2、使用Smarty缓存 17

3、缓存作用 17

4、缓存文件从而来? 18

5Smarty工作原理图 18

6isCached方法 18

7、清除缓存 19

8、单页面多缓存 19

9、缓存集合 20

10、局部缓存 20

六、过滤器 22

1、什么是过滤器 22

2、验证过滤器的存在 22

七、整合SmartyMVC 23

、内建函数

1、if…elseif…else…if

基本语法

{if}

{elseif}

    {else}

{/if}

功能:实现if选择结构

示例代码:

wps7C6B.tmp

运行结果:写代码

2、ldelim、rdelim

{ldelim}

{rdelim}

功能:输出Smarty标签的左右分界符

示例代码:

wps7C7C.tmp

运行效果:

wps7C8C.tmp

3、literal

基本语法:

{literal}

内容(css代码或js代码)

{/literal}

功能:literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的css或 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.

示例代码:

wps7CAC.tmp

效果如下:

wps7CBD.tmp

4、php

基本语法

{php}

php代码

{/php}

功能:允许我们在Smarty模板引擎中使用php代码(但不推荐使用)

在Smarty3.0该语法已经废除,如要使用,请使用SmartyBC入口

示例:

wps7CCE.tmp

效果: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:遍历一维数组

wps7CEE.tmp

运行结果:

wps7CFF.tmp

section与foreach对比:

foreach可以实现对数组进行遍历,且每次遍历后,会将遍历的内容保存在item选项中,其是真正意义上的遍历数组。类似于PHP中的foreach循环

section也可以实现对数组的遍历,但每次循环时,系统只是通过loop确定数组中元素个数并确定循环次数,并将循环索引放入name选项中,其并不是真正意义上的遍历数组,只是类似于PHP代码中的for循环而已。

例2:section参数使用

wps7D0F.tmp

效果如下:

wps7D20.tmp

例3:section遍历二维数组

wps7D30.tmp

运行结果:

wps7D41.tmp

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} :循环的总次数

示例代码:

wps7D61.tmp

运行效果:

wps7D72.tmp

6、strip

{strip}

格式化代码

{/strip}

功能:去除元素的首尾空格及换行

示例代码:

wps7D92.tmp

运行效果:

鼠标右键查看源代码:

wps7D93.tmp

、自定义函数(plugins)

1、counter

基本语法

{counter start=0 skip=2 print=false}

功能:计数器

参数说明:

start:默认开始数字,默认为1

skip:步阶或步调

print:当前是否输出

示例代码

wps7DB3.tmp

运行效果:

wps7DC4.tmp

2、cycle

功能:实现轮显操作

基本语法:

<tr bgcolor=“{cycle values="#eeeeee,#d0d0d0"}”>

示例代码:

wps7DD5.tmp

运行效果:

wps7DF5.tmp

3、debug

功能:实现对源代码的调试

基本语法:{debug}

示例代码:

{debug}

运行效果:

wps7E15.tmp

4、fetch

基本语法:

{fetch file=“载入文件路径” assign=“变量”}

引用:

{$变量}

示例代码:

wps7E26.tmp

运行效果:

wps7E36.tmp

5、html_image

基本语法

{html_image file="pumpkin.jpg"}

示例代码:

wps7E47.tmp

6、html_table

基本语法:

{html_table  loop=$data cols=4 table_attr='border="0"'}

功能:把数组(简单)转化为表格

参数说明:

loop:要遍历的数组

cols:显示多少列

table_attr:表格属性,多个属性请用空格隔开,也可以使用style

示例代码:

wps7E58.tmp

运行效果:

wps7E59.tmp

7、html_checkboxes复选框

基本语法:

{html_checkboxes name=‘cust’ values=$cust_ids  checked=$customer_id output=$cust_names  separator="<br />"}

参数说明

name:复选框的名称(主要用于接收)

values:复选的value属性的值(数组)

checked:选中的值(数组)

output:显示的值(数组)

sepatator:元素与元素的分隔符

示例代码:

wps7E89.tmp

运行效果:

wps7E99.tmp

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:显示出的值(数组)

示例代码:

wps7EAA.tmp

运行效果:

wps7EBA.tmp

9、html_radios

基本语法:

{html_radios values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}

参数说明:

values:radio选项的value值

checked:默认选中的值(要求是一个固定的值)

output:要输出的文本信息(数组)

separator:元素与元素之间的分隔符

示例代码:

wps7ECB.tmp

运行效果:

wps7EDC.tmp

posted on 2016-05-06 00:47  山山未迟 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lifushan/p/5463960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值