[Catalyst] Getting the result of the template processing
Ash Berlin
ash_cpan at firemirror.com
Wed Jan 3 11:20:02 GMT 2007
Marc Logghe wrote:
>> -----Original Message-----
>> From: Xavier Robin [mailto:robin0 at etu.unige.ch]
>> Sent: Wednesday, January 03, 2007 10:46 AM
>> To: catalyst at lists.rawmode.org
>> Subject: [Catalyst] Getting the result of the template processing
>>
>> Hello all,
>>
>> How to get the result of the processing of a template ?
>>
>> I would like to do someting like that:
>>
>> $c->stash->{template} = 'display.tt2';
>> my $result = $c->process_template;
>> # put $result in database
>>
>> The processing of display.tt2 is quite long (a couple of
>> seconds to go through nearly the whole database), so I would
>> like to do it only once.
>>
>> I'm using a TTSite view. I don't want to get the complete
>> page, only the HTML code generated by the template. What
>> command should I use in place of "$c->process_template"? I
>> couldn't find any plugin to do that, but not sure I looked
>> deeply enough to find it, though...
>
> Hi Xavier,
> I did something similar like you are trying to do. Only difference is
> that the result was written to a file instead of being stored in a
> database.
> First you have to make sure that the output of your template is not
> wrapped, because you are not interested in the complete HTML.
> In order to achieve that, this thread might be of help:
> http://thread.gmane.org/gmane.comp.web.catalyst.general/9823/
>
> Second, to get your hands on the result after rendering you could do it
> like this:
>
> # only want the output from the template,
> # no wrapping wanted
> $c->stash->{nowrap} = 1;
>
> $c->stash->{template} = 'display.tt2';
> # force rendering
> # by doing that, the body is set
> $c->forward($c->view);
> # get the rendered result from the body
> my $result = $c->response->body;
> # store $result in the database
> # ...
>
No no no no - don't forward to the view and mess about with resetting
stash params/body. Look at the docs on View::TT in the section about
"CAPTURING TEMPLATE OUTPUT"
Ash
More information about the Catalyst
mailing list