First, a big thanks for the work that has gone into this code. It is going to be a *big* win on speed for us.
I am very new to using HTML::Template and so I'm not sure if the following is allowed: (it's not working for me)
<TMPL_INCLUDE name=<TMPL_VAR name=TEMPLATE>>
This would be helpful as I often use a base template which sucks in other templates that my perl code specifies. So, rather than hardcoding the included filename it'd be great to substitute the filename _before_ including the inner template.
I've worked around the need a different way, but it would be cleaner if the above were allowed.
Thanks for any tips you can offer,
-Brad
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That won't work for the simple reason that all <TMPL_*> tags are processed in a single pass.
In some cases you can do a simulated variable-INCLUDE using a TMPL_VAR and a second $template object. I've thought about adding a new() option that specifies a list of filenames and matching constants that can be used in <TMPL_INCLUDE>. Something like:
my $template = HTML::Template->new(filename => 'foo.tmpl', includes => {bar => 'bar.tmpl'});
Then in the template you could say:
<TMPL_INCLUDE NAME=BAR>
And 'bar.tmpl' would be included. This has subtle implications for the caching mechanisms which assume immutable includes... It could be hard to implement right.
If you're interested in discussing this feature, join the list. Send a blank message to htmltmpl-subscribe@lists.vm.com. As much as I like Sourceforge, this forum software is terrible.
-sam
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've tried to do the same and even went a step further example:
my $templateHeader = "<TMPL_INCLUDE NAME=\"someHash\">";
$template->param(INCLUDE_HEADER => $templateHeader);
then in tmpl
<TMPL_VAR NAME="$templateHeader">
prints out properly and I'm not getting the <TMPL_*> error. But it isn't including it. Any ideas or fixes.
Thanks in advance.
Matt
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've tried to do the same and even went a step further example:
my $templateHeader = "<TMPL_INCLUDE NAME=\"someHash\">";
$template->param(INCLUDE_HEADER => $templateHeader);
then in tmpl
ERROR IN POST
<TMPL_VAR NAME="$templateHeader">
I MEANT
<TMPL_VAR NAME="INCLUDE_HEADER">
prints out properly and I'm not getting the <TMPL_*> error. But it isn't including it. Any ideas or fixes.
Thanks in advance.
Matt
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
First, a big thanks for the work that has gone into this code. It is going to be a *big* win on speed for us.
I am very new to using HTML::Template and so I'm not sure if the following is allowed: (it's not working for me)
<TMPL_INCLUDE name=<TMPL_VAR name=TEMPLATE>>
This would be helpful as I often use a base template which sucks in other templates that my perl code specifies. So, rather than hardcoding the included filename it'd be great to substitute the filename _before_ including the inner template.
I've worked around the need a different way, but it would be cleaner if the above were allowed.
Thanks for any tips you can offer,
-Brad
That won't work for the simple reason that all <TMPL_*> tags are processed in a single pass.
In some cases you can do a simulated variable-INCLUDE using a TMPL_VAR and a second $template object. I've thought about adding a new() option that specifies a list of filenames and matching constants that can be used in <TMPL_INCLUDE>. Something like:
my $template = HTML::Template->new(filename => 'foo.tmpl', includes => {bar => 'bar.tmpl'});
Then in the template you could say:
<TMPL_INCLUDE NAME=BAR>
And 'bar.tmpl' would be included. This has subtle implications for the caching mechanisms which assume immutable includes... It could be hard to implement right.
If you're interested in discussing this feature, join the list. Send a blank message to htmltmpl-subscribe@lists.vm.com. As much as I like Sourceforge, this forum software is terrible.
-sam
I've tried to do the same and even went a step further example:
my $templateHeader = "<TMPL_INCLUDE NAME=\"someHash\">";
$template->param(INCLUDE_HEADER => $templateHeader);
then in tmpl
<TMPL_VAR NAME="$templateHeader">
prints out properly and I'm not getting the <TMPL_*> error. But it isn't including it. Any ideas or fixes.
Thanks in advance.
Matt
I've tried to do the same and even went a step further example:
my $templateHeader = "<TMPL_INCLUDE NAME=\"someHash\">";
$template->param(INCLUDE_HEADER => $templateHeader);
then in tmpl
ERROR IN POST
<TMPL_VAR NAME="$templateHeader">
I MEANT
<TMPL_VAR NAME="INCLUDE_HEADER">
prints out properly and I'm not getting the <TMPL_*> error. But it isn't including it. Any ideas or fixes.
Thanks in advance.
Matt