How can I render only a specific BLOCK
in a template?
Suppose I have this BLOCK
in text.tt
, a Template Toolkit file:
[% BLOCK someblock %] some block test blah blah blah [% END %]
I want to be able to use process()
to handle just that portion:
$tt->process("text.tt/someblock", {...}, {...});
Is this the right way to handle this?
I think its the EXPOSE_BLOCKS option that you maybe after?
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 %]
Will produce this report (with random numbers):
Weekly report
Results for Mon are 728
Results for Tues are 363
Results for Weds are 772
Results for Thurs are 864
Results for Fri are 490
Results for Sat are 88
Results for Sun are 887
Correct for week commencing 1st Jan 1999
Hope that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With