:::

3-1 使用 Smarty

一、Smarty基本操作

  1. 大原則:和外觀有關的東西都放到.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');
    
  2. 樣板檔一律放至 templates 目錄中
  3. PHP檔中最常用的就是利用 $smarty->assign('樣板標籤名稱', $變數值); 將變數送至樣板檔。
  4. templates/index.tpl 內容:
    <h2>Hello {$name}</h2>
    

 二、Smarty變數及陣列

傳送內容 PHP檔(*.php) Smarty樣板檔(*.tpl)
一般變數
$name="tad";
$smarty->assign('name', $name);

 

{$name}

 

一維陣列
$user['name']="tad";
$user['birthday']="1973-06-16";
$smarty->assign('user', $user);

 

{$user.name} 的生日是 {$user.birthday}

 

二維陣列
$users[1]['name']="tad";
$users[1]['birthday']="1973-06-16";
$users[2]['name']="phebe";
$users[2]['birthday']="1973-03-10";
$smarty->assign('users', $users);

 

{foreach $users as $user}
  {$user.name} 的生日是{$user.birthday}
{/foreach}

或

{$user.1.name} 的生日是 {$user.1.birthday}
{$user.2.name} 的生日是 {$user.2.birthday}

 

三、 常用Smarty迴圈用法

  1. Smarty迴圈用來處理陣列,常用方法如下:
    {foreach $來源變數 as $別名}
      {$別名.索引}
    {foreachelse}
      該變數沒有值時要出現的內容
    {/foreach}
  2. 迴圈還有一些特別的用法:
    • {$別名@first} 迴圈第一圈
    • {$別名@last} 迴圈最後一圈
    • {$別名@index} 取得迴圈的索引值,依序輸出0、1、2......
    • {$別名@iteration} 取得迴圈的計數值,依序輸出1、2、3......
    • {$別名@total} 取得迴圈執行總數
  3. 詳情可見:http://www.smarty.net/docs/en/language.function.foreach.tpl

四、Smarty 其他常用用法

  1. 在樣板中,可以直接用 $samrty.get 來取得所有 $_GET 的變數陣列,同理若要在樣板中取得 $_SESSION,那就是用 $smarty.session
  2. 註解的寫法 {* 註解 *}
  3. 在樣板中,Smarty 也可以直接拿PHP的函數來用,我們稱之為「變數修飾器」,例如:
    {if $變數|in_array:$陣列}
  4. 變數後面要加上 |

  5. | 後面加上函數名稱,函數需要的參數用 : 格開

  6. 刪除快取:

    $smarty->clearAllCache();

     


:::

書籍目錄

展開 | 闔起

快速登入


http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D699%26tbsn%3D27

計數器

今天: 2442244224422442
昨天: 4159415941594159
總計: 8069960806996080699608069960806996080699608069960