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(); 

저는 그럼, OuterClass의 내용을 표시합니다. 문제는 내부 클래스의 렌더링 된 HTML이 이스케이프 처리되고 실제 태그 대신 ">"및 "<"이 표시된다는 것입니다. myVar는 내용이 표시되기 전에 완전히 이스케이프 처리 된 것 같습니다.

이 방법은 효과가 없으므로 PHPTAL 템플릿을 중첩하는 가장 좋은 방법은 무엇입니까? 나는 그것이 가능하다고 가정하고 나의 지식에 대한 지식이 부족하기 때문에 어떤 의견도 감사 할 만하다. 당신이 템플릿에 임의의 마크 업을 삽입 한 후 structure 키워드를 사용하려면

답변

5

: 다른 하나 PHPTAL 템플릿을 포함 할 경우

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

하지만, 다음 macros을 사용

매크로. XHTML :

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

page.xhtml :

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

위대한, 이것은 내가 찾고있는 것입니다. 필자는 PHPTAL 문서에서 결코 그렇게까지 얻지 못했습니다. 감사! –