3-1 使用 Smarty
一、Smarty基本操作
- 大原則:和外觀有關的東西都放到.html或.tpl中,所需要的資料全由.php提供,簡單範例,index.php內容:
<?php
require_once
'smarty/libs/Smarty.class.php'
;
$smarty
=
new
Smarty;
$name
=
'Tad'
;
$smarty
->assign(
'name'
,
$name
);
$smarty
->display(
'index.tpl'
);
- 樣板檔一律放至 templates 目錄中
- PHP檔中最常用的就是利用 $smarty->assign('樣板標籤名稱', $變數值); 將變數送至樣板檔。
- templates/index.tpl 內容:
<
h2
>Hello {$name}</
h2
>
二、Smarty變數及陣列
傳送內容 | PHP檔(*.php) | Smarty樣板檔(*.tpl) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
一般變數 |
|
| |||||||||||||
一維陣列 |
|
| |||||||||||||
二維陣列 |
|
|
三、 常用Smarty迴圈用法
- Smarty迴圈用來處理陣列,常用方法如下:
{foreach $來源變數 as $別名}
{$別名.索引}
{foreachelse}
該變數沒有值時要出現的內容
{/foreach}
- 迴圈還有一些特別的用法:
- {$別名@first} 迴圈第一圈
- {$別名@last} 迴圈最後一圈
- {$別名@index} 取得迴圈的索引值,依序輸出0、1、2......
- {$別名@iteration} 取得迴圈的計數值,依序輸出1、2、3......
- {$別名@total} 取得迴圈執行總數
- 詳情可見:http://www.smarty.net/docs/en/language.function.foreach.tpl
四、Smarty 其他常用用法
- 在樣板中,可以直接用 $samrty.get 來取得所有 $_GET 的變數陣列,同理若要在樣板中取得 $_SESSION,那就是用 $smarty.session
- 註解的寫法 {* 註解 *}
- 在樣板中,Smarty 也可以直接拿PHP的函數來用,我們稱之為「變數修飾器」,例如:
{if $變數|in_array:$陣列}
- 變數後面要加上 |
- | 後面加上函數名稱,函數需要的參數用 : 格開
- 刪除快取:
$smarty
->clearAllCache();