面向对象的Web 服务器Zope (2)

王朝厨房·作者佚名  2007-01-02
窄屏简体版  字體: |||超大  

三、内容管理

Zope 的心脏就是 DTML (文档模板标记语言),这个功能强大的变量插入和表达语言,提供对 Zope 对象的安全脚本和动态内容产生。 DTML 采用了服务器端包含脚本的语法,对很多 Web 开发人员来说很容易上手,而且和Zope 的安全模型高度集成。对安全的集成,可以让用户使用自己的 DTML 而不会对整个网站的安全构成威胁。

DTML 基本的变量插入和条件测试语句是十分直观的。DTML 代码采用 Zope 系统中对象的属性和方法,也可使用 Web 请求和表单中的变量。下面是一个文档标题属性显示的例子,当不同的用户登录时,显示不同的信息:

--------------------------------------------------------------------------------

本文档的标题为:<!--#var document_title--> 。

<P>

<!--#if "AUTHENTICATED_USER=='小地主'"-->

嘿!你好,小地主!

<!--#else-->

嘿!你好,陌生人!

<!--#/if-->

--------------------------------------------------------------------------------

当然 DTML 文档能包含其他 DTML 文档。一个常用的设计就是页面头和脚的包含:

--------------------------------------------------------------------------------

<!--#var standard_html_header-->

<H2>欢迎来到 www.FreeLAMP.com!</H2>

<!--#var standard_html_footer-->

--------------------------------------------------------------------------------

DTML 采用 #in 标记提供强大的递归插入。这个标记也可以用来自动管理批处理。下面的例子调用 SQL 查询对象,递归调用结果集数据建立表格:

--------------------------------------------------------------------------------

<TABLE>

<!--#in getEmployees-->

<TBODY><TR>

<TD><!--#var first_name--></TD>

<TD><!--#var last_name--></TD>

<TD><!--#var job_title--></TD>

<TD><!--#var hire_date--></TD>

</TR>

<!--#/in-->

</TBODY></TABLE>

--------------------------------------------------------------------------------

采用这些标记和其他更加高级的 DTML 结构,Web 开发人员能调用 SQL 查询语句,建立新的对象,操作对象属性,建立高度动态的网站内容。下面的例子采用了 DTML的 sendmail 标记来发送 Email。

--------------------------------------------------------------------------------

<!--#var standard_html_header-->

<!--#sendmail smtphost="mail.freelamp.com">

To: Feedback Department <feedback@freelamp.com>

From: Feedback Form <ff@freelamp.com>

Subject: 用户意见反馈

<!--#var name-->提出意见:

<!--#var comments-->

<!--#/sendmail-->

<H2>谢谢!</H2>

<P>

感谢您的建议!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航