2009-08-15 1 views
3

템플릿에 특정 BLOCK 만 렌더링하려면 어떻게해야합니까?Perl 's Template Toolkit에서 어떻게 특정 'BLOCK'만 렌더링 할 수 있습니까?

text.ttBLOCK하는 Template Toolkit 파일 가정하자 내가 한 : 난 그냥 그 부분을 처리 할 수 ​​process()을 사용할 수 있도록하려면

[% BLOCK someblock %] some block test blah blah blah [% END %] 

:

$tt->process("text.tt/someblock", {...}, {...}); 

이 올바른 방법으로인가 이걸 처리해?

답변

7

내가 EXPOSE_BLOCKS 옵션을 사용한다고 생각 하나?

use strict; 
use warnings; 
use Template; 

my $tt = Template->new({ 
    INCLUDE_PATH => '.', 
    EXPOSE_BLOCKS => 1, 
}); 

$tt->process('test.tt/header', { tit => 'Weekly report' }); 

for my $day qw(Mon Tues Weds Thurs Fri Sat Sun) { 
    $tt->process('test.tt/body', { day => $day, result => int rand 999 }); 
} 

$tt->process('test.tt/footer', { tit => '1st Jan 1999' }); 

 

test.tt :

[% BLOCK header %] 
[% tit %] 
[% END %] 

[% BLOCK body %] 
* Results for [% day %] are [% result %] 
[% END %] 

[% BLOCK footer %] 
Correct for week commencing [% tit %] 
[% END %] 

 

이 (임의의 숫자)이 보고서를 생성합니다 :

주간 보고서를월 대 73,210

  • 결과 화는 Weds는 목 772

  • 결과 금 864 개

  • 결과가되어 363

  • 결과는에 대해 728

  • 결과이다 are 490

  • 토에 대한 14,결과 일 88

  • 결과 도움이 주 시작 1999년 1월 1일

 

희망에 대한 887

정확하다.

+0

고마워요! Template Toolkit 구성 옵션의 전체 목록을 어디에서 찾을 수 있는지 알고 있습니까? EXPOSE_BLOCKS는이 목록에 언급되어 있지 않습니다. http://template-toolkit.org/docs/manual/Config.html –

+0

아마도 이것이 최고의 목록 일 것입니다.하지만 불행히도 EXPOSE_BLOCKS가 누락 된 것으로 눈치 채 셨습니다. (아마 EXPOSE_BLOCKS 펄 템플릿 툴킷 (Perl Template Toolkit) 책 (http://template-toolkit.org/book.html)에서 볼 수있다. 색인을 통해 플리 킹하면 69 페이지가 나온다 ... 흠 .. – draegtun

관련 문제