Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: When to use templates?

by cfreak (Chaplain)
on Nov 19, 2004 at 16:47 UTC ( #409047=note: print w/ replies, xml ) Need Help??


in reply to Re^2: When to use templates?
in thread When to use templates?

*Purest Alert*

Why do you need complex IF statements in your template? samtregar's idea for HTML::Template was to separate the two. If you introduce complexity into your template you create a Meta-language where code and data are again mixed. And designers get confused :)

I believe its much better to leave complex stuff in Perl which is very good at handling it and output the appropriate data to the template from there.

I do make use of HTML::Template's simple IF statements (and I wish there was an elseif) but beyond them I don't think its appropriate to further extend a meta-language.


Comment on Re^3: When to use templates?
Re^4: When to use templates?
by zejames (Hermit) on Nov 19, 2004 at 17:12 UTC
    I said complex statement, meaning statement not only based on boolean variable passed par the perl script.

    In HTML::Template for example, you cannot test in the template if $var > 5, you have to do it the script ($bool = $var > 5;) and then use the result the a TMPL_IF.

    I do not like it very much. However, I do respect Your Way To Code It ;) That's a matter of choice.


    --
    zejames
Re^4: When to use templates?
by MidLifeXis (Prior) on Nov 19, 2004 at 19:56 UTC

    I agree mostly with that sentiment. However, I have found myself putting display oriented variables in my perl code lately.

    For example, with HT, I would need to do a ...

    # In the perl $template->param(SHOULD_I_DISPLAY_THIS => ($foo + $bar) > 2); ------- <!-- In the template --> <TMPL_IF SHOULD_I_DISPLAY_THIS>this</TMPL_IF>

    With HTE, I could use...

    <TMPL_IF EXPR="(FOO + BAR) > 2">this</TMPL_IF>

    It leaves the display decisions in the hands of the interface / html coder, and the data collection to the perl program. It is hard (you mentioned not having a TMPL_ELSIF) to do an N (where N>2) way decision, or a decision based on the quantity of something.

    Another example...

    Without creating display variables in your perl code (x_gt_3, x_gt_5, ...), how would you change the style of something based on its value?

    • Green if X < 3
    • orange if 3 <= X < 5
    • red if 5 <= X

    As I said above, I typically don't like using HTE, but I am running into more instances where it could prove to be useful, and would remove some of the variables controling display from my perl code.

    --MidLifeXis

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://409047]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2014-07-26 17:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (178 votes), past polls