Re: [htmltmpl] enhancements to H::T
Brought to you by:
samtregar
From: Timm M. <tm...@ag...> - 2003-12-10 14:50:19
|
At 05:55 PM 12/10/03 +1100, Mathew Robertson wrote: ><> >In a template you may do something like: > ><TMPL_IF user> > <TMPL_IF user.name> > <TMPL_VAR user.name.first> <TMPL_VAR user.name.last> > </TMPL_IF> > <TMPL_IF user.address> > <TMPL_VAR user.address.street> > <TMPL_VAR user.address.town> > </TMPL_IF> ></TMPL_IF> > > >Normally your code would look something like: > >if (length $user->name->first or $user->name->last ) { > $tmpl->param ('user' => 1); > $tmpl->param ('user.name' => 1); > $tmpl->param ('user.name.first' => $user->name->first ); > $tmpl->param ('user.name.last' => $user->name->last ); >} >if (length $user->address->street or $user->address->town) { > $tmpl->param ('user' => 1); > $tmpl->param ('user.address' => 1); > $tmpl->param ('user.address.street' => $user->address->street); > $tmpl->param ('user.address.town' => $user->address->town); >} > > >With the 'structure_vars' support you can do this: > >$tmpl->param( 'user.name.first' = $user->name->first ); >$tmpl->param( 'user.name.last' = $user->name->last ); >$tmpl->param( 'user.address.street' = $user->address->street ); >$tmpl->param( 'user.address.town' = $user->address->town ); Actually, you'd just do this: $tmpl->param( user => $user ); And H::T would take care of calling the necessary methods for you. |