More Calling Dtml-Methods with variable names
OK, I have a small problem now. This is my main DTML document1: <dtml-var standard_html_header> <dtml-var expr="_.getitem(someMethod,1)"> <p> That's all. </p> <dtml-var standard_html_footer> Let's say the variable someMethod holds the string 'Method1'. The DTML Method 'Method1' holds this: <h1> HELLO </h1> This actually outputs what you would expect: 'header stuff' HELLO (bold) That's all. 'footer stuff' But what if Method1 is not in the same folder? For example, if it's in the folder 'Methods' which is in the folder that the main document is in. I can't seem to get that to work. I've tried this: <dtml-var expr="_.getitem('Methods.'+someMethod,1)"> and I've tried changing the variable name to 'Methods.Method1', but each of these gives me an error: This resource may be trying to reference a nonexistent object or variable Methods.Method1. Using Methods.Method1() does not make a difference. If I just put in <dtml-var expr="Methods.Method1()"> it works. Not what I want though. Thanks for you time reading through this message. I'm really just experimenting with Zope right now, trying to learn what it can do and how it accomplishes those things. I have a feeling some experienced Zope users are laughing hysterically at some of the things I'm doing! -JeremiahGet more from the Web. FREE MSN Explorer download : http://explorer.msn.com
Jeremiah, I went through this a week or so ago. You need to use the <dtml-with> statement to get methods in other folders. the "folder.method" construct only works if you dont need the namespace of the other folder. i.e. <dtml-var standard_html_header> <dtml-with Methods> <dtml-var someMethod> </dtml with> <p> That's all. </p> <dtml-var standard_html_footer> in this case you should not have to use _.getitem(someMethod,1) Tom => -----Original Message----- => From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of => Jeremiah White => Sent: Saturday, 23 June 2001 1:30 PM => To: zope@zope.org => Subject: [Zope] More Calling Dtml-Methods with variable names => => => OK, I have a small problem now. => => This is my main DTML document1: => => <dtml-var standard_html_header> => <dtml-var expr="_.getitem(someMethod,1)"> => <p> That's all. </p> => <dtml-var standard_html_footer> => => => Let's say the variable someMethod holds the string 'Method1'. => => The DTML Method 'Method1' holds this: => => <h1> HELLO </h1> => => => This actually outputs what you would expect: => => 'header stuff' => HELLO (bold) => That's all. => 'footer stuff' => => But what if Method1 is not in the same folder? For example, if => it's in the folder 'Methods' which is in the folder that the => main document is in. I can't seem to get that to work. I've tried this: => => <dtml-var expr="_.getitem('Methods.'+someMethod,1)"> => => and I've tried changing the variable name to 'Methods.Method1', => but each of these gives me an error: => => This resource may be trying to reference a nonexistent object or => variable Methods.Method1. => => Using Methods.Method1() does not make a difference. => => If I just put in <dtml-var expr="Methods.Method1()"> it works. => Not what I want though. => => Thanks for you time reading through this message. I'm really => just experimenting with Zope right now, trying to learn what it => can do and how it accomplishes those things. I have a feeling => some experienced Zope users are laughing hysterically at some of => the things I'm doing! => => -Jeremiah => => => => => => => Get more from the Web. FREE MSN Explorer download : http://explorer.msn.com
Jeremiah White writes:
..... But what if Method1 is not in the same folder? For example, if it's in the folder 'Methods' which is in the folder that the main document is in. I can't seem to get that to work. I've tried this:
<dtml-var expr="_.getitem('Methods.'+someMethod,1)">
and I've tried changing the variable name to 'Methods.Method1', but each of these gives me an error:
This resource may be trying to reference a nonexistent object or variable Methods.Method1.
Using Methods.Method1() does not make a difference.
If I just put in <dtml-var expr="Methods.Method1()"> it works. Not what I want though. This is an FAQ, well answered in the mailing list archives, the Zope book and
URL:http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html Your options: 1. <dtml-with "folder"> <dtml-var expr="_.getitem(Methods,1)"> </dtml-with> 2. "restrictedTraverse"
<HTML><BODY STYLE="font:10pt verdana; border:none;"> .... Please do not post HTML.
Dieter
participants (3)
-
Dieter Maurer -
Jeremiah White -
Tom Cameron