首页 > 编程开发 > Php > 正文  
对《模板,PHPLIB处理方式》一文的补充
出自:php中文用户 OpenBall 2002年08月17日 21:56
用模版设计网站,可以分开美工和程序员的工作,并且方便界面的修改和完善。所以,我用了PHPLib的template模版。
但是,其中却始终有个问题,就是block的使用,因为,哪怕是lib的帮助中的例子,也是错的,根本没法出来结果。

为什么要用block呢?
比如说,要显示一个表格,那么表格的没一行需要重复显示(parse的时候,用参数true可以追加)。
但是,表格是一个文件的一部分,如果多次parse,只能造成整个表格的多次显示。
解决的一个办法是,将一个<tr>...</tr>单独放到另外一个文件,然后对那个文件循环parse,最后再对整个网页模版文件parse。功能可以实现,但是很明显,没有了模版分离的优势,而是很麻烦。
好了,所以不得不用block(可能fast templage不支持的,我没用过FastTemplate,反正phplib的template支持)

比如一个模版文件如下:
<!-- main.htm -->
<html><head></head>

<body>
<table>
<tr><td>filed1</td><td>filed2</td></tr>
<!-- BEGIN row -->
<tr><td>{filed1}</td><td>{filed2}</td></tr>
<!-- END row -->
</table>

</bodky>
</html>

上面,定义了一个名为row的block,现在就可以让那一块重复parse了。

php文件为:
include "template.inc" //注意,你下载的template.inc文件65行左右,可能缺一个"/"
//,就是set_unknown()函数前的注释没有匹配。从PHPLib的发源地和phpuser下载的都有
//这个小问题,加上就行了。

$t= new Template(".");
$t->set_file("fhandle","main.htm");
$t->set_block("fhandle","row","{rows");!!!!!Importment
for($i=0;$i<10;$i++)
{
$t->set_var("filed1",".随便啦..");
$t->set_var("filed2",".随便啦..");
$t->parse("rows","row",true);
}

$t->parse("out","fhandle")
$t->p("out");
----------------
好了,试试上面的,OK啦!!
哈哈,花了我不少时间,今天从phpbuilder看到的!
都怪那个叫limoduo的,翻译了PHPlib的template使用的两篇文章,到了关键的block,就不再干了。
呵呵,今天终于找到了!

--

==============================================
发信人: OpenBall (爱我所爱~无怨无悔~), 信区: FreeDevelop
标 题: 哈哈,PHPLib的Template的Block终于可以用了!!
发信站: 交大兵马俑BBS站 (Sun Jul 30 19:40:37 2000), 转信

决斗时的先机,
来源于平常之心.

】【http://www.trainlinux.com】【Close
『相关资料』
小木学编程 之 PHPLib模板 (2002-08-17 21:56)
PHPLIB和多个数据库 (2002-08-16 21:56)
简单的页面缓冲技术 (2002-08-16 21:55)
开发大型PHP项目的方法(一) (2002-08-16 21:55)
Home 

诚恩Linux培训工作室