Re: [htmltmpl] extended TMPL_IF / UNLESS syntax
Brought to you by:
samtregar
From: Sam T. <sa...@tr...> - 2004-02-20 01:56:17
|
On Fri, 20 Feb 2004, Mathew Robertson wrote: > I often find myself generating template code such as: > > <TMPL_UNLESS error> > <TMPL_UNLESS print> > <TMPL_IF some_var> > .... do something... > </TMPL_IF> > </TMPL_UNLESS> > </TMPL_UNLESS> When I see stuff like that I go into my Perl code and whip up something like: <tmpl_if no_error_and_no_print> ... do something ... </tmpl_if> <tmpl_if no_error> ... do something else ... <tmpl_if error> ... do something else entirely ... </tmpl_if> That way the template stays simple and I concentrate the complex logic in the Perl code where it belongs. If possible I try to find a way to phrase each condition that doesn't involve boolean logic, which few non-programmers fully understand. > The equivalent using H::T::E would be: > > <TMPL_UNLESS EXPR="((defined error) or (defined print)) and ...."> > ... do something... > </TMPL_UNLESS> You can write that a little simpler: <TMPL_UNLESS EXPR="((error or print) and ...)"> > both syntax's are reasonably ugly... Beauty is in the eye of the beholder... > What about a syntax like: > > <TMPL_IF !error,!print,some_var> ...which is proven by the fact that I find this much uglier than either of the two alternatives! -sam |