> > 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.

Thats ok - except that since 'error' and 'print' are orthogonal concepts - the 
metaphore of not displaying either is really a user-interface problem, not an 
application problem.   As such, to generate the 'no_error_and_no_print' value, the 
programmer would need to either:
a) get a set of requirements form the UI guy which states what extra variables need to 
be coded up,
b) automatically generate arbitrary names for each combination of template parameters, 
just in case the UI guy needs them.

In either case, we increase coupling between the UI and the backend application code.


> > 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 ...)">

'error' in scalar context, means something slightly different than 'defined(error)' - 
however, you are correct for this rather poor example of mine...

> 
> > 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!

touche...

cheers,
Mathew


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Html-template-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/html-template-users

Reply via email to