Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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.

Replies are listed 'Best First'.
Re^4: When to use templates?
by MidLifeXis (Monsignor) 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.


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.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2018-08-16 21:16 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (172 votes). Check out past polls.