smarty 模板教程Word格式文档下载.docx
《smarty 模板教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《smarty 模板教程Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
smarty模板通常使用.tpl来标识,有些人为了美工方便,将扩展名直接写成.html,也是可以的。
本文中采用smarty标准写法:
以.tpl来表示为一个smarty模板。
PHP代码:
--------------------------------------------------------------------------------
实例1:
先来看一个简单的例子。
=====================================================
index.tpl
{*显示是smarty变量识符里的用*包含的文字为注释内容*}
{includefile="
header.tpl"
}{*页面头*}
大家好,我叫{$name},欢迎大家阅读我的smarty学习材料。
foot.tpl"
}{*页面尾*}
上边的这个例子是一个tpl模板,其中:
1.{**}是模板页的注释,它在smarty对模板进行解析时不进行任何输出,仅供模板设计师对模板进行注释。
2.{includefile="
xxx.tpl"
}使用此句将一个模板文件包含到当前页面中,例子中将在网站中公用事的head.tpl与foot.tpl进行了包含,你可以
这样想,使用这一句将xxx.tpl中的内容全部复制在当前语句处。
当然,你不使用这一句也可以,将XXX.tpl中的内容复制到当前语句处
也是完全可以了。
3.{$name}:
模板变量,smarty中的核心组成,采用smarty定义的左边界符{与右边界符}包含着、以PHP变量形式给出,在smarty程序中将使用
$smarty->
assign("
name"
"
李晓军"
);
将模板中的$name替换成“李晓军”三个字。
整个实例源程序如下:
=============================
header.tpl
<
html>
head>
title>
大师兄smarty教程<
/title>
/head>
body>
===============================
foot.tpl
hr>
center>
CopyRight(C)by大师兄2004年8月Email:
teacherli@<
/center>
/body>
/html>
================================================
index.php
?
php
/*********************************************
*
*文件名:
index.php
*作用:
显示实例程序
*作者:
大师兄
*Email:
teacherli@
*********************************************/
include_once("
./comm/Smarty.class.php"
);
//包含smarty类文件
$smarty=newSmarty();
//建立smarty实例对象$smarty
template_dir="
./templates"
;
//设置模板目录
compile_dir="
./templates_c"
//设置编译目录
//----------------------------------------------------
//左右边界符,默认为{},但实际应用当中容易与JavaScript
//相冲突,所以建议设成<
{}>
或其它。
left_delimiter="
{"
right_delimiter="
}"
//进行模板变量替换
//编译并显示位于./templates下的index.tpl模板
display("
index.tpl"
>
最终执行这个程序时将显示为:
================================
执行index.php
大家好,我叫李晓军,欢迎大家阅读我的smarty学习材料。
实例2:
这个例子是综合使用smarty模板参数的一个例子,这些参数用来控制模板的输出,我只选其中几个,其它的参数你去看参考吧。
example2.tpl
大师兄smarty示例2<
1.第一句首字母要大写:
{$str1|capitalize}<
br>
2.第二句模板变量+李晓军:
{$str2|cat:
"
}<
3.第三句输出当前日期:
{$str3|date_format:
%Y年%m月%d日"
4.第四句.php程序中不处理,它显示默认值:
{$str4|default:
没有值!
5.第五句要让它缩进8个空白字母位,并使用"
*"
取替这8个空白字符:
{$str5|indent:
8:
}}<
6.第六句把TEACHerLI@全部变为小写:
{$str6|lower}<
7.第七句把变量中的teacherli替换成:
李晓军:
{$str7|replace:
teacherli"
:
8.第八句为组合使用变量修改器:
{$str8|capitalize|cat:
这里是新加的时间:
|date_format:
|lower}
===============================================
example2.php
example2.php
显示实例程序2
str1"
mynameisxiaojun,li."
//将str1替换成MyNameIsXiaoJun,Li.
str2"
我的名字叫:
//输出:
我的名字叫:
李晓军
str3"
公元"
//输出公元2004年8月21日(我的当前时间)
//$smarty->
str4"
//第四句不处理时会显示默认值,如果使用前面这一句则替换为"
str5"
前边8个*"
//第五句输出:
********前边8个*
str6"
TEACHerLI@"
//这里将输出teacherli@
str7"
thisisteacherli"
//在模板中显示为:
thisis李晓军
str8"
HEREISCOMBINING:
example2.tpl"
最终输出效果:
======================================================
example2.php输出效果:
MyNameIsXiaoJun,Li.<
李晓军<
公元2004年8月21日<
5。
第五句要让它缩进8个空白字母位,并使用"
********前边8个*<
teacherli@<
thisis李晓军<
HereisCombining:
2004年8月21日
在模板中的这些参数被称为变量修改器(variablemodifiers),使用这些参数可对模板进行一系列的修改控制。
变量修改器
使用"
|"
和调节器名称应用修改器,使用"
分开修改器参数。
变量修改器可以组合使用,像第八句一样,实际使用中可以灵活应用。
实例3.
==================================================
example3.tpl
模板中内定的一些函数<
{*下面的这一段相当于在模板内部定义一个变量UserName*}
{assignvar="
UserName"
value="
大师兄"
}
这里将显示模板内部定义的一个变量:
UserName={$UserName}
下面的这一行将显示3个checkBox:
{html_checkboxesname="
CheckBox"
values=$CheckNamechecked=$IsCheckedoutput=$valueseparator="
br/>
}
下面在这一行将显示3个radio:
{html_radiosname="
RadioBox"
values=$RadioNamechecked=$IsCheckedoutput=$valueseparator="
下面显示一个月,日,年选择框:
{html_select_date}
b>
CopyRight(C)ByXiaoJun,Li2004<
{mailtoaddress="
teacherli@163.ccom"
text="
联系作者"
example3.php
example3.php
显示实例程序3
require_once("
template_dir='
./templates/'
compile_dir='
./templates_c/'
config_dir='
./configs/'
cache_dir='
./cache/'
caching=false;
//--------------------------------------------------------------------------------------
//处理{html_checkboxesname="
assign('
CheckName'
array(
1001=>
'
语文'
1002=>
数学'
1003=>
外语'
));
IsChecked'
1001);
//处理{html_radioesname="
RadioName'
//{html_select_date}不用处理会自动输出
example3.tpl"
example3.php输出效果:
UserName=大师兄
inputtype="
checkbox"
name="
CheckBox[]"
1000"
语文<
1001"
checked="
checked"
数学<
1002"
外语<
radio"
RadioBox[]"
selectname="
Date_Month"
optionlabel="
January"
01"
January<
/option>
February"
02"
February<
March"
03"
March<
April"
04"
April<
May"
05"
May<
June"
06"
June<
July"
07"
July<
August"
08"
selected="
selected"
August<
September"
09"
September<
October"
10"
O