Smarty模板入门知识
官方网站smarty.php.net上面有论坛,有下载,有手册,有你想要的一切。下面我们切入正题:
(-)安装:
下载的包解压后有三个下级目录:模板文件目录是<libs>,其下有四个文件两个目录。首先介绍最重要的:Smarty.class.php它应该是整个smarty模板的核心类,平时应用时也是跟它打交道。
好了,在你的web目录下建立以下目录结构:
/lib/smarty
/templates_c
/templates
/cache
<smarty>对应压缩包下的libs目录下面放smarty需要的类文件
<templates>存放模板文件,程序用到的模板文件都放这里
<templates_c>存放"编译"后的模板文件,目录权限需要设为777
<cache>存放缓存的模板文件
以上文件名为smarty默认的文件名,用户可以指定不同的文件名,如:guest_template_dir,admin_template_dir
等。如果不指定将使用以上文件名。
(二)使用:
使用分两步,第一步是设计模板:
以html形式制作模板文件,放置在templates目录下,模板中基本有以下几种情况:
1、模板变量:{$变量名},如 {$color},{$type}
<font color={$color}>{$name}</font>
2、模板数组
{$people.name}<br>
{$people.sex}<br>
{$people.money}<br>
3、使用section对多维数组进行列表输出
<TABLE>
{section name=user loop=$userList}
<TR>
<TD>{$userList[user].name}</TD>
<TD>{$userList[user].sex}</TD>
<TD>{$userList[user].money}</TD>
</TR>
{/section}
</TABLE>
把以上这些综合起来构成下面这个模板内容
普通变量实例:<font color={$color}>{$name}</font><br>
简单数组实例:<br>
{$people.name}<br>
{$people.sex}<br>
{$people.money}<br>
section实例:
<TABLE>
{section name=user loop=$userList}
<TR>
<TD>{$userList[user].name}</TD>
<TD>{$userList[user].sex}</TD>
<TD>{$userList[user].money}</TD>
</TR>
{/section}
</TABLE>
|
第二步是设计php脚本:
<?php
//当前目录app_1下
//生成$smarty实例
require('lib/smarty/Smarty.class.php');
$smarty = new Smarty;
//指定功能目录,可以自定义
$smarty->template_dir = 'templates';
$smarty->$compile_dir = 'template_c';
//为模板变量赋值 模板:test.html 放于templates下
//$smarty->assign('模板变量名','php内部变量');
//$smarty->display(模板文件名);
$smarty->assign('color','red');
$smarty->assign('name','hello world');
//将输出:<font color=red>helloworld</font>
//为模板数组变量赋值
$people = array('name'=>'巴豆','sex'=>'男','money'=>'a little');
$smarty->assign('people',$people);
//将输出:
//巴豆
//男
//a little
//模板区块
//{section name=user loop=$userList}
//section:标签功能
//name:标签名
//loop:循环数组
//功能循环输出多行
//将输出:
//user1 user1_sex user1_money
//user2 user2_sex user2_money
//user3 user3_sex user3_money
$userList[] = array('name'=>'user1','sex'=>'user1_sex','money'=>'user1_money');
$userList[] = array('name'=>'user2','sex'=>'user2_sex','money'=>'user2_money');
$userList[] = array('name'=>'user3','sex'=>'user3_sex','money'=>'user3_money');
$smarty->assign('userList',$userList);
$smarty->display('test.html');
?>
|
运行http://localhost/test.php即可见到如下输出: