2009-08-22 2 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 это выполнить() метод и возвращает содержимое. Так что я делаю это во внешнем классе:

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

I, а затем, отображать содержимое 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. Благодаря! –

Смежные вопросы