20150211--Smarty2-01

模板引擎——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:元素与元素之间的分隔符

示例代码:

运行效果:

时间: 2024-10-12 10:32:58

20150211--Smarty2-01的相关文章

ThinkPHP中:RBAC权限控制的实习步骤

使用版本ThinkPHP3.1.3 第一步,建表及数据 第二步,建关联模型 第三步,控制器使用关联模型.配置文件 第四步,模板显示数据 第一步,建表及数据 在数据库中,建立一个companysvn数据库,库下建立五张表 建表好导入数据的代码如下 1 # -------------------------------------------------------- 2 # Host: 127.0.0.1 3 # Server version: 5.0.45-community-nt-log 4

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

我国第三代移动通信研究开发进展-尤肖虎200106

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

pl/sql学习1——标量变量psahnh6S

为类型.不能用于表列的数据类型.范围为的子类型.自然数.为的子类型.具有约束为单精度浮点数.为变量赋值时.后面要加为双精度浮点数.为变量赋值时.后面要加.为数字总位数.为小数位数是的子类型.最大精度位是的子类型.最大精度位单精度浮点型是的子类型.最大精度位双精度浮点型定义精度为位的实数..定义为位的整数.变长字符串.最长测试变量数据!.定长字符串.最长测试变长二进制字符串物理存储的为类型...固定长度.个字节使用定义数据类型那个最小值:最大值:最小值:最大值:最小值:最大值:最小值:最大值:最小

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati

UVA 562 Dividing coins --01背包的变形

01背包的变形. 先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define N 50007 int c[102],d

17-又见01背包

/*                                        又见01背包时间限制:1000 ms  |  内存限制:65535 KB难度:3 描述        有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W     的物品,求所有挑选方案中物品价值总和的最大值.    1 <= n <=100    1 <= wi <= 10^7    1 <= vi <= 100    1 <= W <= 10^

洛谷——P1141 01迷宫

https://www.luogu.org/problem/show?pid=1141 题目描述 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上. 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身). 输入输出格式 输入格式: 输入的第1行为两个正整数n,m. 下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格. 接下来m行,每行2个用空格分隔的正整