delphi for php 帮助文档的笔记(二)

时间:2021-07-18 03:12:33

在开发指南单元中有几个重要的内容,帮助里把它拿出来简要说明了,下面我翻译记录如下:

一、Smarty Templates

此话题讲述了如何在vcl for php项目中使用Smarty template engine (smarty模版引擎),使用它,你可以保持现有的html模版,然后用vcl for php来添加动态内容,实现动态编辑,数据列表等。

下面是使用smarty templates的具体步骤:

创建你的模版

一个smarty模版可以是正规的html文件,可以是任何后缀名,按惯例你可以用.tpl后缀,便.html也可以。你在其中添加smarty标签使它们成为smarty模版,标签样式为:

{%tag%}

你可以到smarty官方网站去找到更多的语法方面的知识。

添加标准标签

Smarty功能需要在模版中插入一些标准的标签,才能使事件正确地运行来,才能添加javascript代码和其它资源,下面是在一个基本的模版中加入标准标签的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

<title>VCL for PHP :: PHP Web Application Development Framework</title>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

{%$HeaderCode%}

</head>

<body>

{%$StartForm%}

{%$EndForm%}

</body>

</html>

如所示,这里有三个标签(HeaderCode,StartForm,EndForm),有它们后,模版才可以php页面相结合。

在页面上附加上模版

要使模版运行起来,你必须设置二个属性值:

  • TemplateEngine - To "SmartyTemplate"
  • TemplateFilename - With the path to your template

这样就可以让模版在面页上工作起来。

添加标签来放置其它组件

Smarty和vcl for php相结合的真正强大的是可以在模版上插入组件,仅只要在你要插入的地方插入一个{%$组件名%}标签就可以了。

然后,你就可以创建一个vcl for php 页面,在任何地方放上先前如标签所定的组件就行了。

调用内部smarty对象

使用Smarty模版强大功能,你可以通过页的ontemplate事件来实现调用smarty模版对象来渲染页面

可以如下应用:

$template=$params['template'];
$template->_smarty->assign('latest_daily',$this->getDailyBuildsLeft())

下面我要说几句了:

网上有专门的smarty教程。smarty官网也有很细地说明,只是它不是针对vcl for php来编写的,但请大家记住,vcl for php也是php就可以了,我们可以在任何过程里执行php代码。

smarty官网:http://www.smarty.net/

smarty 中文手册:http://www.hbcms.com/main/smarty/

要想很好的用上这个功能不博采各家之长是不行的。呵呵,至少我是这么认为的。我想帮助这里也只是授之以渔吧。

 

 

二、页继承

 

在vcl for php中,你能够从一个页面上继承它的组件和事件,也就是说,你可以创建一个父页面然后继承它的所有函数。

这个在开发网站时的一个特别有用的功能,那些看起来在整个网站里都不会有什么变化的内容,就可以创建一个master page(父页面),然后在你新建的页面中把它当基类来继承就可以了。(例程里例子,大家自己去看下更容易理解)

你只要如下操作:

指定一个页为Master Page

在指定的页的属性中设置IsMaster为true就可以了,如果你设定了这个属性,那么这个页运行起来后就不会显示任何东西,因为它的脚本被设定为不执行了。(我想它只用来做基类用的吧)

在你的页中引用父页

如果你要继承父页,你必须有在单元引用地方引用父面,通常是使用require_once在页代码页。

require_once("your_master_page_unit.php");
 

继承父页

好了,现在你需要改变你的页父类为你要继承的页名,通常是将Page改为你的父页类名,现在你运行页面会发现它显示了父页的内容和你加入的组件。