Smarty例項教程(2)

gaoshouma發表於2009-02-25

例4.模板控制(if / elseif / else/ endif )
=======================================================
example4.tpl
=======================================================
<html>
<head><title>模板中的流程控制</title><head>
<body>
<table border=”1″>
{assign var=”tbColor” value=”#D4D0C8″}
色彩:{$tbColor}<br>

{section name=loop loop=$News}
{if $tbColor == “#D4D0C8”}
<tr bgcolor=”{$tbColor}”>
{assign var=”tbColor” value=”#EEEEEE”}
{else $tbColor == “#EEEEEE”}
<tr bgcolor = “{$tbColor}”>
{assign var=”tbColor” value=”#D4D0C8″}
{/if}
<td>{$News[loop].newsID}</td>
<td>{$News[loop].newsTitle}</td>
<tr>
{/section}
</table>
</body>
</html>

=======================================================
example4.php
=======================================================
<?php
/*********************************************
*
* 檔名: example4.php
* 作 用: 顯示例項程式4
*
* 作 者: 大師兄
* Email: teacherli@163.com
*
*********************************************/

require_once (“./comm/Smarty.class.php”);

$smarty = new Smarty();
$smarty->template_dir = `./templates/`;
$smarty->compile_dir = `./templates_c/`;
$smarty->config_dir = `./configs/`;
$smarty->cache_dir = `./cache/`;
$smarty->caching = false;

$array[]= array(“newsID”=>”001”, “newsTitle”=>”第1條新聞”);
$array[]= array(“newsID”=>”002”, “newsTitle”=>”第2條新聞”);
$array[]= array(“newsID”=>”003”, “newsTitle”=>”第3條新聞”);
$array[]= array(“newsID”=>”004”, “newsTitle”=>”第4條新聞”);
$array[]= array(“newsID”=>”005”, “newsTitle”=>”第5條新聞”);
$array[]= array(“newsID”=>”006”, “newsTitle”=>”第6條新聞”);
$array[]= array(“newsID”=>”007”, “newsTitle”=>”第7條新聞”);
$array[]= array(“newsID”=>”008”, “newsTitle”=>”第8條新聞”);

$smarty->assign(“News”, $array);

$smarty->display(“example4.tpl”);
?>

==================================================
example4.php輸出:
==================================================
<html>
<head><title>模板中的流程控制</title><head>
<body>
<table border=”1″>

<tr bgcolor=”#D4D0C8″>

<td>001</td>
<td>第1條新聞</td>
</tr>
<tr bgcolor = “#EEEEEE”>

<td>002</td>
<td>第2條新聞</td>
</tr>
<tr bgcolor=”#D4D0C8″>

<td>003</td>
<td>第3條新聞</td>
</tr>
<tr bgcolor = “#EEEEEE”>

<td>004</td>
<td>第4條新聞</td>
</tr>
<tr bgcolor=”#D4D0C8″>

<td>005</td>
<td>第5條新聞</td>
</tr>
<tr bgcolor = “#EEEEEE”>

<td>006</td>
<td>第6條新聞</td>
</tr>
<tr bgcolor=”#D4D0C8″>

<td>007</td>
<td>第7條新聞</td>
</tr>
<tr bgcolor = “#EEEEEE”>

<td>008</td>
<td>第8條新聞</td>
</tr>
</table>
</body>
</html>

模板檔案中使用:
{if $tbColor == “#D4D0C8”}
<tr bgcolor=”{$tbColor}”>
{assign var=”tbColor” value=”#EEEEEE”}
{else $tbColor == “#EEEEEE”}
<tr bgcolor = “{$tbColor}”>
{assign var=”tbColor” value=”#D4D0C8″}
{/if}
這一語句塊進行設定每一行的背景顏色, {assign var=”tbColor” value=”#D4D0C8″}還記的吧,是例3中設定模板內部變數的定義方法,

使用模板內建的流程控制語句有時可以極大程度上提高程式的控制能力,下面一個例子是phpx.com中曾經有位朋友問過的,我將它作為
例項放在這裡供大家學習.
例4我用來說明{if / elseif /else /if}的使用方法,如果單為了實現隔行的目的,大家可以使用這一句就行了:
PHP程式碼:——————————————————————————–
{section name=rows loop=$data}
<tr bgcolor=”{cycle values=”#D4D0C8,#EEEEEE”}”>
<td>{$data[rows]}</td>
</tr>
{/section}


相關文章