发新话题
打印

SmartTemplate分析(5)

SmartTemplate分析(5)

if

if … endif 结构用于处理条件化的模块片断



它可以使用下边任何一个语法

<!– IF var –> var is not empty! <!– ENDIF var –>

<!– IF name=="John Doe" –> Your name is John Doe! <!– ENDIF name –>

<!– IF name!="John Doe" –> Your name is not John Doe! <!– ENDIF name –>

(ENDIF后的变量是可选的)


if ... endif 控制有条件的输出模板的部分.

语法如下:
变量不为空
复制内容到剪贴板
代码:
<!-- IF var --> var 不为空! <!-- ENDIF var -->
变量值判断
复制内容到剪贴板
代码:
<!-- IF name=="HonestQiao" --> Your name is HonestQiao! <!-- ENDIF name -->
变量值否定判断
复制内容到剪贴板
代码:
<!-- IF name!=" HonestQiao " --> Your name is not HonestQiao! <!-- ENDIF name -->
(var 在 ENDIF 之后是可选的,但是最好加上)
if.php:
复制内容到剪贴板
代码:
<?php

  require_once "class.smarttemplate.php";
  $page = new SmartTemplate("if.html");

  $page->assign( 'username',   'HonestQiao' );
  $page->assign( 'usergroup', 'ADMIN' );
  $page->assign( 'picture',   '' );

  $page->output();

?>
if.php使用的模板文件如下:
if.html:
复制内容到剪贴板
代码:
<!-- IF username --> <H3> Welcome, {username} </H3> <!-- ENDIF -->


<!-- IF picture --> <img src="{picture}"> <!-- ENDIF picture -->


<!-- IF usergroup="ADMIN" -->

<a href="admin.php"> ADMIN Login </a><br>

<!-- ENDIF usergroup -->
if.php执行的效果如下:
输出:
复制内容到剪贴板
代码:
<H3> Welcome, HonestQiao </H3>
<a href="admin.php"> ADMIN Login </a><br>
else 控制作为 if 控制的扩展,当if 判断结果为 FALSE 来输出模板的一部分.
else.php:
复制内容到剪贴板
代码:
<?php

  require_once "class.smarttemplate.php";
  $page = new SmartTemplate("else.html");

  $page->assign( 'username',   'John Doe' );
  $page->assign( 'usergroup', 'ADMIN' );
  $page->assign( 'picture',   '' );

  $page->output();

?>
else.php使用的模板文件如下:
else.html:
复制内容到剪贴板
代码:
<!-- IF username -->

<H3> Welcome, {username} </H3>

<!-- ENDIF -->

<!-- IF picture -->

<img src="{picture}">

<!-- ELSE -->

Picture not available! <br>

<!-- ENDIF picture -->

<!-- IF usergroup="ADMIN" -->

<a href="admin.php"> ADMIN Login </a><br>

<!-- ELSE -->

You are in guest mode!

<!-- ENDIF usergroup -->
else.php执行的效果如下:
输出:
引用:
<H3>; Welcome, John Doe </H3>


Picture not available! <br>


<a href="admin.php"> ADMIN Login </a><br>
elseif 控制是 else 与 if 的结合.
elseif.php:
复制内容到剪贴板
代码:
<?php

  require_once "class.smarttemplate.php";
  $page = new SmartTemplate("elseif.html");

  $page->assign( 'usergroup', 'INTERNAL' );

  $page->output();

?>
elseif.php使用的模板文件如下:
elseif.html:
复制内容到剪贴板
代码:
<!-- IF usergroup="ADMIN" -->

<a href="admin.php"> Admin Staff Login </a><br>

<!-- ELSEIF usergroup="SUPPORT" -->

<a href="support.php"> Support Staff Login </a><br>

<!-- ELSEIF usergroup -->

<a href="other.php"> Standard Login </a><br>

<!-- ELSE -->

You don't even have a usergroup!

<!-- ENDIF -->
elseif.php执行效果如下:
输出:
引用:
<a href="other.php"> Standard Login </a><br>
begin ... end 结构

begin ... end 结构结构提供了一种方法,使用数字索引数组来输出重复的相似的内容。数字索引数组的每一个元素,应该是一个散列数组,<!-- begin --> and <!-- end --> 标签类似一个小的模板,他分析内嵌的模板片断,并使用这个散列数组来生成内容。

每个散列数组可以使用以下的两个扩展参数:

ROWCNT :当前元素的在父数组之中的实际位置. (0,1,2,3,...n)
ROWBIT : 表示ROWCNT的二进制字节的最后一位,也就是奇偶值. (0,1,0,1,0,1,...)

begin ... end 块可以很容易的嵌套使用,他们会被自动的递归分析.
begin_end.php:
复制内容到剪贴板
代码:
<?php

  require_once "class.smarttemplate.php";
  $page = new SmartTemplate("begin_end.html");

  $users = array(
          array( 'NAME' => 'John Doe',   'GROUP' => 'ADMIN' ),
          array( 'NAME' => 'Jack Doe',   'GROUP' => 'SUPPORT' ),
          array( 'NAME' => 'James Doe', 'GROUP' => 'GUEST' ),
          array( 'NAME' => 'Jane Doe',   'GROUP' => 'GUEST' ),
        );

  $page->assign( 'users', $users );

  $page->output();

?>
begin_end.php使用的模板如下:
begin_end.html:
复制内容到剪贴板
代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style>

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr>

<!-- BEGIN users -->

<tr class="col{ROWBIT}">
<td> {ROWCNT} </td>
<td> {NAME} </td>
<td> {GROUP} </td>
</tr>

<!-- END users -->

</table>
begin_end.php的运行效果如下:
输出:
复制内容到剪贴板
代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style>

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr>


<tr class="col0">
<td> 0 </td>
<td> John Doe </td>
<td> ADMIN </td>
</tr>


<tr class="col1">
<td> 1 </td>
<td> Jack Doe </td>;
<td> SUPPORT </td>;
</tr>


<tr class="col0">
<td> 2 </td>
<td> James Doe </td>
<td> GUEST </td>
</tr>


<tr class="col1">
<td> 3 </td>
<td> Jane Doe </td>
<td> GUEST </td>
</tr>


</table>
[ 本帖最后由 flyindance 于 2007-11-15 21:51 编辑 ]
一個偽裝成白癡的天纔!

TOP

发新话题