1.变量
1> 普通变量
声明:
a>$smarty->assign();
b>{assign var='变量名' value='值'}
取值:
{$变量名}
2>保留变量
$smarty
作用:1)可以获取用户请求的变量
{$smarty.get.变量名} {$smarty.post.变量名} {$smarty.request.变量名}
2)可以获取会话和cookie
{$smarty.session.变量名} {$smarty.cookies.变量名}
3)获取PHP的环境变量
{$smarty.server.变量名}
4)常量
{$smarty.const.变量名}
5)其他
{$smarty.now} {$smarty.version} {$smarty.ldelim} {$smarty.rdelim}
3>配置变量
定义:
a)配置变量放在configs目录下
b)可以定义全局和局部变量(节),用[]表示节
c)先定义全局变量,再定义局部变量
取值:
a)导入配置文件 {config load file='地址' section='节名称'}
b){#配置变量名#}
2.数组
smarty中数组的声明和PHP是一样的,在模板中取值的方法有两个
1){数组[下标]}
2){数组.下标}
3)foreach()
语法:
{foreach 数组名=>$k as $v}
{foreachelse}
没有数组输出
{/foreach}
内部关键字:
值变量@iteration 从1开始增长
值变量@index 从0开始增长
值变量@first 第一行就返回1
值变量 @last 最后一行就返回1
值变量@total 一共有多少条记录
值变量@show 如果数组可以变量就返回true 否则返回false
4.section循环
语法:
{section name=' 自定义名称' loop='被遍历的数组'}
{被遍历的数组[自定义名称]}
{sectionelse}
内部关键字:
{$smarty.section.自定义变量名称.iteration}{$smarty.section.自定义变量名称.index}{$smarty.section.自定义变量名称.first}
{$smarty.section.自定义变量名称.last}
注意:section循环只能变量索引数组 不能变量关联数组
5.判断
{if}
{elseif 条件}
{else}
{/if}
6.smarty的运算符和PHP运算符是一样的
7.循环语法
{for($i1 to 10 step 2)}
{/for}
{while 条件}
{/while}
8.{html_checkboxes name='' output='' values='' selected=''}
可以换成
{html_checkboxes name='' options='' selected=''}
{html_radio}
{html_options}和{html_checkboxes}用法一样
9.把html和smarty结合起来
10.布局
1)通过{block name=''}这个标签来实现布局
2)一个布局文件可以有多个block,通过名字来替换
3)在子页面中 通过{extends file='布局文件的路径'}继承布局文件
4)通过名字来替换布局文件中的block
11.包含文件
{include file='包含文件地址'}
注意:如果公共部分多用布局文件 如果公共部分少用包含文件
12.变量修饰器
时间:{$smarty.now|data_format:"%Y-%m-%d %H:%M:%S"}
转换大写{%str|upper}
转换小写{%str|lower}
字符串截取{$str|truncate:10 :'...':true:true}
13.缓存
1)开启缓存 $smarty->caching=1|true
缓存放在cache文件夹下
2)缓存更新
a)删除对应的缓存文件
b)修改模板 布局 包含 配置文件 缓存会自动更新
c)强制更新 $smarty->force_cache=true
d)设置缓存的过期时间
网友评论