Ahh, Ok. It all makes sense now. So to make something *truly* global to a template, and all processing done within that template, I define variables before an processing is done. So, my example below turns into this: <span tal:omit-tag="" tal:define="objs here/regionObjects; num_objs python:objs[0];"> <html metal:use-macro="here/GetTemplate"> ... </html> </span> This seems a little sloppy. Is there a better way to do it? This also leads me to believe that there's no way to define site-wide globals available in every Page Template that's generated. What if I wanted a module available in every page without having to define it in every page? e.g: tal:define="global pps modules/Products/PythonScripts/standard" I can't really get this to work, can I? Mark
This is the answer from Tres when I had the same problem:
""" AFAIK, global names are defined in the scope of the template which includes the macro; the "source" template for the macro is not itself "evaluated" before inclusion (METAL processing is done *before* TAL processing). """
--On Sonntag, 27. Oktober 2002 13:23 -0700 Mark Gibson <mark@dimensional.com> wrote:
I define a variable in a tag, and try and use it in a contained tag, and get a NameError on that variable. Can anyone help me understand why? The snippet of code is below:
<html metal:use-macro="here/GetTemplate" tal:define="objs here/regionObjects; num_objs python:objs[0] ">
<div metal:fill-slot="body"> <table border="0" width="100%" tal:condition="python:num_objs > 11"
...
Error Type: NameError Error Value: global name 'num_objs' is not defined
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
--------------------------------------------------------------------- - Andreas Jung http://www.andreas-jung.com - - EMail: andreas at andreas-jung.com - - "Life is too short to (re)write parsers" - ---------------------------------------------------------------------