码迷,mamicode.com
首页 > 其他好文 > 详细

20150211--Smarty2-01

时间:2016-05-06 02:07:29      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

技术分享

模板引擎——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选择结构

示例代码:

技术分享

运行结果:写代码

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:元素与元素之间的分隔符

示例代码:

技术分享

运行效果:

技术分享

20150211--Smarty2-01

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5463960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!