capture/config/foreach/ldelim/rdelim/include

来源:互联网 发布:java实现单链表 编辑:程序博客网 时间:2024/06/07 11:54

{capture name="foo"}content{/capture}
capture函数的作用是捕获模板输出的数据并将其存储到一个变量里,而不是把它们输出到页面.
在模板中通过 $smarty.capture.foo 访问该变量.


{config_load file="china.conf" section="hebei"}
该函数用于从配置文件中加载变量。加载的路径是以当前文件所在目录为引入路径。
配置文件有可能包含多个部分,此时可以使用附加属性 section 指定从哪一部分中取得变量.
china.conf配置文件格式:

# global variables
beijing="北京"
shanghai="上海"
tianjing="天津"
chongqing="重庆"

[hebei]
shijiazhuang="石家庄"
handan="邯郸"
qinhuangdao="秦皇岛"
zhangjiakou="张家口"
baoding="保定"
tangshang="唐山"
chengde="承德"
langfang="廊坊"
hengshui="衡水"
cangzhou="沧州"
xingtai="邢台"

[zhejiang]
hangzhou="杭州"
ningbo="宁波"
wenzhou="温州"
jiaxing="嘉兴"
huzhou="湖州"
shaoxing="绍兴"
jinhua="金华"
quzhou="衢州"
zhoushan="舟山"
taizhou="台州"
lishui="丽水"

调用语法:{#shijiazhuang#} 注意“#”成对使用。


{foreach name=china23 item=shenshi from=$china_area}
from,待循环数组的名称
item,当前处理元素的变量名称
key,当前处理元素的键名
name,该循环的名称,用于访问该循环
遍历二维数组:
<{foreach name=china23 item=shenshi from=$china_area}>
<{foreach key=key item=item from=$shenshi}>
<{$key}>:<{$item}> <br/>
<{/foreach}>
<{/foreach}>
foreachelse应用案例($china_areaxx未定义数组):
<{foreach name=china33 key=key item=item from=$china_areaxx}>
<{$key}>:<{$item}><br/>
<{foreachelse}>
没有数据!
<{/foreach}>


向页面插入开始/结束符:
<{ldelim}>中国<{rdelim}>,ldelim 和 rdelim 用于输出分隔符。
默认的分隔符为“{”和“}”。


向模板中引入文件:
<{include file="template_file"}>
template_file,以Smarty设定的模板目录为引入路径,向下包含文件。
例如:
<{include file="head.htm"}>和<{include file="/template/head.htm"}>
当前我的Smarty的config文件$Smarty->template_dir设置为“/template”,
第一个才是正确的引入方式。

原创粉丝点击