400-696-8028

对《模板,PHPLIB处理方式》一文的补充

长沙北大青鸟作者:科泰校区匿名

摘要:用模版设计网站,可以分开美工和程序员的工作,并且方便界面的修改和完善。所以,我用了PHPLib的template模版。 但是,其中却始终有个问题,就是block的使用,因为,哪怕是lib的帮助中的例子,也是错的,根本没法出来
用模版设计网站,可以分开美工和程序员的工作,并且方便界面的修改和完善。所以,我用了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
// ~~~~其实,文件中的block被替换成了
// {rows}.注意,这里{}一定不能省!PHPLib自带的例子,
// 就是少了这个,所以不能正确显示!!

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), 转信

决斗时的先机,
来源于平常之心.
关于我们
公司简介
发展历程
青鸟荣誉
联系我们
加入我们
青鸟课程
BCVE视频特效课程
BCUI全链路UI设计
BCSP软件开发专业
BCNT网络工程师
启能职业教育基础课程
长沙初中生学什么
长沙高中生学什么
长沙大学生学什么