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

Reply via email to