Smarty 图标

根据商标声明,您可以使用 Smarty 徽标。

Smarty Template Engine Smarty Template Engine

如需赞助、广告、新闻或其他询问,请通过以下方式联系我们

使用 Smarty 的网站

广告

我们的留言薄有两个模板,一个用于查看,一个用于添加新条目。

/web/www.example.com/smarty/guestbook/templates/guestbook.tpl

{* Smarty *}

<table border="0" width="300">
  <tr>
    <th colspan="2" bgcolor="#d1d1d1">
      Guestbook Entries (<a href="{$SCRIPT_NAME}?action=add">add</a>)</th>
  </tr>
  {foreach from=$data item="entry"}
    <tr bgcolor="{cycle values="#dedede,#eeeeee" advance=false}">
      <td>{$entry.Name|escape}</td>        
    <td align="right">
      {$entry.EntryDate|date_format:"%e %b, %Y %H:%M:%S"}</td>        
    </tr>
    <tr>
      <td colspan="2" bgcolor="{cycle values="#dedede,#eeeeee"}">
        {$entry.Comment|escape}</td>
    </tr>
    {foreachelse}
      <tr>
        <td colspan="2">No records</td>
      </tr>
  {/foreach}
</table>

guestbook.tpl 是用于查看留言薄的模板。它在一个 foreach 循环中循环处理留言薄数据(已从 displayBook() 分配),并显示每个条目的姓名、日期和评论。日期使用 date_format 修改器进行格式化。姓名和评论使用 escape 修改器进行 HTML 转义,以避免任何 HTML 标签冲突或脚本攻击。{cycle} 函数用于在每两行表格中循环背景颜色。

/web/www.example.com/smarty/guestbook/templates/guestbook_form.tpl

{* Smarty *}

<form action="{$SCRIPT_NAME}?action=submit" method="post">
  <table border="1">
    {if $error ne ""}
      <tr>
      <td bgcolor="yellow" colspan="2">
      {if $error eq "name_empty"}You must supply a name.
      {elseif $error eq "comment_empty"} You must supply a comment.
      {/if}
      </td>
      </tr>
    {/if}
    <tr>
      <td>Name:</td>
      <td>
        <input type="text" name="Name"
          value="{$post.Name|escape}" size="40">
      </td>
    </tr>
    <tr>
      <td valign="top">Comment:</td>
      <td>
        <textarea name="Comment" cols="40" rows="10">{$post.Comment|escape}</textarea>
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input type="submit" value="Submit">
      </td>
    </tr>
  </table>
</form>

guestbook_form.tpl 是用于向留言薄添加条目的模板。如果由于验证错误而重新显示表单,则重新填充表单值并显示相应的错误消息。表单值经过 HTML 转义,因此没有 HTML 标签或引号冲突(非常重要!)

使用此示例应用程序,我们完成了 Smarty 驱动的应用程序的几个关键方面。

  • 所有表示元素都包含在模板中。我们不会从模板外部分配 HTML 标签或其他表示元素。我们唯一分配的是页面内容,在本例中是留言薄条目。
  • 错误消息也从模板维护。我们不分配错误消息本身,而是分配错误代码,用于确定要显示哪个错误消息。维护错误消息的另一种方法是通过 Smarty 配置文件,您可以在配置文件中指定 error_code = 错误消息,然后使用 {$smarty.config.$error_code} 显示。
  • 广泛使用 PHP 对象来展示它们在轻松传递信息(如 sql/模板对象和错误代码)方面的有用性,避免使用过程函数和笨拙的参数传递。

希望这能够让您了解如何设置应用程序以使其与 Smarty 配合工作,从而将应用程序与其表示干净地分离开。

[第 1 页] [第 2 页] [第 3 页] [第 4 页]