Re: [htmltmpl] TMPL_IF and TMPL_ELSE - how do I use this?
Brought to you by:
samtregar
From: Joel <htm...@jo...> - 2004-02-17 20:04:21
|
Hi Lori, In your loop where you are pushing onto @loop_data, you'd want to add an additional variable to your hashref that will indicate whether or not is drillable. So inside your loop, you might do something like this: for (some_loop_condition) { if (row_is_drillable) { push @loop_data, {id =3D> $this, rowname =3D> $that, drillable =3D> 1} } else { push @loop_data, {id =3D> $this, rowname =3D> $that, drillable =3D> 0} =20 } } $tmpl->param(LOOP_DATA =3D> \@loop_data); Then inside your template: <TMPL_LOOP NAME=3DLOOP_DATA> ID: <TMPL_VAR NAME=3DID><br> Name: <TMPL_VAR NAME=3DROWNAME><br> Drillable?: <TMPL_IF NAME=3DDRILLABLE>Yes<TMPL_ELSE>No</TMPL_IF> </TMPL_LOOP> Basically, you can use TMPL_IF on any variable in your loop. Although, if a drillable row requires a URL or some other bit of information, you can get = away without an explicit drillable variable and use the presence or absence of t= he URL to indicate if the row is drillable. Remember what true and false are in perl and that will help you. False is 0 (the numeric value), "0" (a string containing the number 0), undef (undefin= ed) or a empty string ('' or ""). Anything else is true. And that's how HTML::Tempalte works, as well, when dealing with TMPL_IF. Clear as mud, right? :) Hope this helps. Good luck! --Joel >I've read the documentation sections on TMPL_IF and TMPL_ELSE. The part >where I'm getting stuck is figuring out how to set up that "BOOL" value. = I >know if "BOOL" is true, then the section in TMPL_IF is run; if it's false, >the section in TMPL_ELSE is run. This sounds like what I want to do (I >think...). >=20 >I have my results generated and the web page looks nice. However, there a= re >some rows that need to have a different bit of HTML in it (some rows/cells >are to be "drillable" and some are not). Unfortunately, it's not just the >"last" or "first", etc.; the rows are interspersed in no particular order, >some are contiguous, some are stand-alone. >=20 >This is where I get stuck. I can tell where I am in Perl when I'm pushing >the hash references to the @loop_data (which is subsequently pushed to the >template for output), so I can set a variable to something at that time. = =20 >=20 >How do I set up a variable that the TMPL_IF and TMPL_ELSE can use to >determine which section of the HTML loop to process? >=20 >I hope this made sense. When you're new, sometimes it's hard to know even >how to ask a question! :-) >=20 >Thanks! >=20 >Lori > > >--------------------------------- >Do you Yahoo!? >Yahoo! Finance: Get your refund fast by filing online |