2009-08-22 68 views
2

最近几天我一直在玩PHPTAL。总的来说,我非常喜欢它。进入这个目标比我看过的其他大多数人都容易得多。不过,我有一个特殊的问题。PHPTAL和嵌套模板。可能?

这是问题所在。我试图嵌套两个模板。比方说,将InnerClass有这个模板:

<div>Hello World!</div> 

在OuterClass有以下模板:

<div tal:content="myVar">This text should be replaced with the HTML above.</div> 

将InnerClass也有一个名为渲染()方法,它本质上呼吁themplate的execute()方法返回的内容。所以我这样做在外部类:

$template->myVar = $innerClassObject->render(); 

我,然后,显示OuterClass的内容。问题是内部类的呈现的HTML转义,我看到“>”和“<”,而不是实际的标签。看起来,myVar在显示内容之前完全转义了。

由于此方法无效,嵌套PHPTAL模板的最佳方法是什么?我认为这是可能的,这只是我的最终知识缺乏,所以任何输入都表示赞赏。

回答

5

如果你想插入任意标记在模板中,然后使用structure关键字:

<div tal:content="structure variable_that_contains_html"/> 

,但如果你想嵌入在另一个PHPTAL模板,然后使用macros

宏。 XHTML:

<div metal:define-macro="greeting">Hello World!</div> 

page.xhtml:

<body><tal:block metal:use-macro="macros.xhtml/greeting"/></body> 
+0

太好了,这就是我一直在寻找的东西。显然,我从来没有在PHPTAL文档中那么远。谢谢! – 2009-08-24 06:20:50