2

在过去的几天里,我一直在玩 PHPTAL。总的来说,我真的很喜欢它。它比我研究过的大多数其他人更容易进入。不过,我遇到了一个特殊问题。

这就是问题所在。我正在尝试嵌套两个模板。假设 InnerClass 有这个模板:

<div>Hello World!</div>

OuterClass 具有以下模板:

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

InnerClass 还有一个叫做render() 的方法,它本质上是调用themplate 的execute() 方法并返回内容。所以我在外部类中这样做:

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

然后,我显示 OuterClass 的内容。问题是内部类的渲染 HTML 被转义了,我看到 ">" 和 "<" 而不是实际的标签。似乎 myVar 在显示其内容之前已完全转义。

由于这种方法不起作用,嵌套 PHPTAL 模板的最佳方法是什么?我认为这是可能的,只是我缺乏知识,所以任何意见都值得赞赏。

4

1 回答 1

5

如果要在模板中插入任意标记,请使用structure关键字:

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

但是如果你想在另一个中嵌入一个 PHPTAL 模板,那么使用

宏.xhtml:

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

page.xhtml:

<body><tal:block metal:use-macro="macros.xhtml/greeting"/></body>
于 2009-08-23T11:26:53.103 回答