T086学习网 | 站长学院 | 技术文档 | 成语 | 歇后语 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论 | 欣欣百宝箱

Smarty程序应用范例:留言簿(Guestbook)

【 网络作者:Surran 更新时间:2006-12-05 | 字体:
[导读]翻译:Surran pkstudio_comeback@yahoo.com转载请注明出处和译者原文见:http://smarty.php.net/sampleapp/sampleapp_p1.php Smarty程序应用范例:留言簿(Guestbook)第一节 这是一个使用了Smarty的PHP应用程序。目...

Smarty程序应用范例:留言簿(Guestbook)第五节

我们这个留言簿程序有两个模板文件,一个用来显示留言一个用来书写留言。

/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函数从头到尾遍历留言簿的数据,显示出每个留言簿条目的‘Name’、‘Date’和‘Comment’字段信息。‘Date’字段信息经日期格式化调节器(date_format)格式化后显示。 ‘Name’和‘Comment’字段信息使用转码调节器(escape)处理,以便原样显示HTML代码和避免脚本攻击。{cycle} 函数用来在表格中隔两行显示不同的表格背景色。

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


<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的设置文件(config files),在那里(在config file里),我们以“error_code = Error Message”的格式存储错误提示,然后用{$smarty.config.$error_code} 方法根据错误代码显示错误提示。

* PHP 对象(们)相比于过程化的函数+沉闷的参数更能便捷灵活地传递信息从而(应)被广泛使用。(如同sql/template 对象和错误代码的使用)

希望这个范例能给你一个思路,一个在你的程序开发工作中使用Smarty,把程序中的表现逻辑与实现逻辑干净地分离开来的思路。

上一页 [1] [2] [3] [4] 5
  • 转载请注明来源:IT学习网 网址:http://www.t086.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
更多
留言建议ASP探针PHP探针站长Enjoy的Blog
© 2017 T086学习网 - T086.com(原itlearner.com)
RunTime:18.82ms QueryTime:7