Alright. What does it return? Based upon this:
return special_formats['structured-text'](_[page_body])
It should return the result of calling whatever method is returned by getting the 'structured-text' element of the special_formats dictionary with page_body as the only argument. Whew! Why don't you just do this: myhome.html: <dtml-var name="standard_html_header"> <dtml-let page_body="'stuff.stx'"> <dtml-var name="dtml_wrapper"> </dtml-let> <dtml-var name="standard_html_footer"> dtml_wrapper: <dtml-if name="page_body"> <dtml-if expr="page_body[-4:] == '.stx'"> <dtml-var name="page_body" fmt="structured-text"> <dtml-else> <dtml-var name="page_body"> </dtml-if> <dtml-else> <dtml-var name="default_page"> </dtml-if> Am I making sense, or missing the point? Alright, I admit it. I really like DTML (though sometimes...) Troy Gary Learned wrote:
Well, I added it as a parameter, and that fixed the immediate problem, however it doesn't return myhome.stx as it should....curiouser and curiouser.
-----Original Message----- From: Troy Farrell [mailto:troy@entheossoft.com] Sent: Sunday, February 03, 2002 12:11 AM To: Gary Learned Cc: zope@zope.org Subject: Re: [Zope] Newbies & variables
Gary, Is page_body listed as a Python Script parameter? If not, try adding it. If so, this could be significantly more complex. Troy
-- Troy Farrell Developer Entheos Software mailto:troy@entheossoft.com http://www.entheossoft.com
Gary Learned wrote:
In working thru the examples in the Zope Web Applications
book, it is
demonstrating the use of python scripts. I have the following code elements:
myhome.html:
<dtml-let page_body="'myhome.stx'"> <dtml-var standard_dtml_wrapper> </dtml-let>
standard_dtml_wrapper:
<html> <head> <title><dtml-var title_or_id></title> </head> <body> <dtml-var banner> <dtml-call choose_page_body> </body> </html>
And finally, choose_page_body (type script)
from Products.PythonScripts.standard import special_formats
if page_body : if page_body[-4] == ".stx" : return special_formats['structured-text'](_[page_body]) else : return _[page_body] else : return default_page
In thiscase, I also bound namespace=_
My problem is that when trying to view this, I get an error on page_body indicating that the python script knows nothing about it. Since this is all originating from within the <dtml-let> block, I thought it would carry thru. Since it isn't, how do I fix this?