Hi List,
[ Eventually I will post a patch to H::T to a webpage, in the meantime I
have sent an update version directly to Joshua. If others are
interested in this patch, shoot me a email. ]
> I am happy to say that I haven't run into any problems using Mathew's
> patch. It's exactly what I wanted/needed! Thanks!
>
Thats good.
> I do have a feature request though:
>
> Currently if I leave out 2 params, it only notifies me that one of
> them is missing. It would be nice if I was told when both were
> missing.
>
Hadn't considered that. The existing coding practice within H::T is
that is croak's immediately on error conditions. However, in the case
of this option, adding support for accumulating the errors is pretty
trivial, so I did.
> This issue applies to die_on_bad_params as well, but it's slightly
> more subtle, because the dying point is different. With
> die_on_bad_params, you die as soon as the param is set, so no list of
> bad_params could accumulate. (unless of course you wait until
> $template->output() to die).
>
> Also, I've noticed that if I comment out a <tmpl_var ...> in the
> template file, die_on_missing_params still thinks I should set it.
> Likewise, if I set a parameter that has been commented out,
> die_on_bad_params remains silent. Perhaps this is the intended
> behavior... after all, somebody may want to fill in html comments from
> the code. And adding a new comment syntax to template files would
> detract from it's great simplicity. Besides, commenting out code is
> considered bad practice anyway, isn't it? :)
>
Some browsers support conditional compilation/execution, which means
that HTML comments are actually parsed. In fact, since HTML comments
are true-dinks DOM elements, there are some javascript libraries that
parse the comment block to enable extra features, while being
old-browser compatible.
So yes, you want TMPL_xxx parsed inside HTML comments. If you really
want to comment out a TMPL_VAR, you could try unsetting "strict" so that
you can do:
<TMPL_VAR name> => <TMPL_ZUH name>
Or if you need to comment out a HTML block, you can use a H::T filter
such as:
sub tmpl_comment {
my $filter = sub {
my $text_ref = shift;
my $match =
qr/<(?:\!--\s*)?[Tt][Mm][Pp][Ll]_[Cc][Oo][Mm][Mm][Ee][Nn][Tt]\s*(?:--)?>.*?<(?:\!--\s*)?\/[Tt][Mm][Pp][Ll]_[Cc][Oo][Mm][Mm][Ee][Nn][Tt]\s*(?:--)?>/s;
$$text_ref =~ s/$match//g;
};
return $filter;
}
$ht = HTML::Template->new(...., filter => tmpl_comment,...);
<TMPL_COMMENT>
... some <a...> html </a>
</TMPL_COMMENT>
Regards,
Mathew Robertson
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Html-template-users mailing list
Html-template-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/html-template-users