[htmltmpl] global_vars / endless loops / HTML::Template::Expr
Brought to you by:
samtregar
From: Fran F. <fr...@mo...> - 2002-07-09 02:16:13
|
Hello, I'd really like to use HTML::Template::Expr, but I currently cannot because it forces global_vars on, and global_vars causes an infinite loop with my most complex template. Is the infinite looping a known issue? The template that causes it is 7 or 8 nested TMPL_LOOP's, all with the same exact name and contents (in order to enable me to display in a generic fashion a tree hierarchy tool that can have up to 7 or 8 nested levels). Also, I noticed the perldoc for HTML::Template::Expr mentions that future versions might not force global_vars on, but I assume this doesn't exist yet, correct? I've included the affected template below. It's ugly, be forewarned. :-) I'm interested in knowing what in my template causes the endless looping (which manifests itself as an endless stream of "### HTML::Template Debug ### In output" lines in the server error log with debug turned on) and if there's a fix which would allow me to use my template AND HTML::Template::Expr. I tried to add some logic to use Expr for all other templates and vanilla HTML::Template for this one, but it seems to still loop - I presume the 'use HTML::Template::Expr' is enough to load whatever code forces global_var on?? Any tips much appreciated. Thanks, Fran <html> <head> <title>Tree Test</title> <script src="/lib/js/chimpkit/tree.js"></script> <style type="text/css"><!-- @import url(/lib/css/chimpkit/tree.css); @import url(/lib/css/chimpkit/<tmpl_var style>.css); --> </style> </head> <body bgcolor=ffffff onLoad="CallJS('ProgressDestroy()');"> <!---progress bar begin---> <script src="/lib/js/chimpkit/progress.js"></script> <!--- progress bar end---> <span id=non_progress class=show> <form name=form1> <input type=hidden name=loading_code value=exist> <tmpl_if regmode> <input type=hidden name=tree_type value="Registration"> <tmpl_else> <input type=hidden name=tree_type value="RMS"> </tmpl_if> <table width=350><TR><TD> <span id=-1 style="margin-left: 0px;"> <tmpl_loop tree> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var type>.gif" align=middle> <tmpl_var name></span><br> <span id=<tmpl_var entid> class=CHILDREN style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> <tmpl_loop children> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var status>.gif" align=middle> <img src="/images/<tmpl_var type>.gif" align=middle> <a href="javascript:getNodeDetails('<tmpl_var type>','<tmpl_var entid>',<tmpl_var regmode>);" class=<tmpl_var type>><tmpl_var name></a></span><br> <span id=<tmpl_var entid> class=CHILDREN style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> <tmpl_loop children> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var status>.gif" align=middle> <img src="/images/<tmpl_var type>.gif" align=middle> <a href="javascript:getNodeDetails('<tmpl_var type>','<tmpl_var entid>',<tmpl_var regmode>);" class=<tmpl_var type>><tmpl_var name></a></span><br> <span id=<tmpl_var entid> class=CHILDREN style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> <tmpl_loop children> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var status>.gif" align=middle> <img src="/images/<tmpl_var type>.gif" align=middle> <a href="javascript:getNodeDetails('<tmpl_var type>','<tmpl_var entid>',<tmpl_var regmode>);" class=<tmpl_var type>><tmpl_var name></a></span><br> <span id=<tmpl_var entid> class=CHILDREN style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> <tmpl_loop children> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var status>.gif" align=middle> <img src="/images/<tmpl_var type>.gif" align=middle> <a href="javascript:getNodeDetails('<tmpl_var type>','<tmpl_var entid>',<tmpl_var regmode>);" class=<tmpl_var type>><tmpl_var name></a></span><br> <span id=<tmpl_var entid> class=CHILDREN style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> <tmpl_loop children> <span class=<tmpl_var type>><tmpl_if havechildren><a href="javascript:toggleClamShellMenu('<tmpl_var entid>')"><img name="img_<tmpl_var entid>" src="/images/<tmpl_if preopen>mns<tmpl_else>pls</tmpl_if>.gif" align=middle border=0></a><tmpl_else><img src="/images/blankpls.gif" align=middle></tmpl_if> <img src="/images/<tmpl_var status>.gif" align=middle> <img src="/images/<tmpl_var type>.gif" align=middle> <a href="javascript:getNodeDetails('<tmpl_var type>','<tmpl_var entid>',<tmpl_var regmode>);" class=<tmpl_var type>><tmpl_var name></a></span><br> <span id=<tmpl_var entid> class=<tmpl_var type> style="{display:<tmpl_if preopen>block<tmpl_else>none</tmpl_if>}"> </span> </tmpl_loop> </span> </tmpl_loop> </span> </tmpl_loop> </span> </tmpl_loop> </span> </tmpl_loop> </span> </tmpl_loop> </span> </TD></TR></TABLE> </span> </form> </body> </html> |