On Jan 29, 11:50 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > Jens schrieb: > > > > > On Jan 25, 3:19 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > >> Jens schrieb: > > >>> Hello Everyone > >>> I'm newbie toZopeand i have a few questions regarding external > >>> methods. What i wan't to do > >>> is provide a terse syntax for converting urls to special tracking > >>> urls: > >>> <dtml-var "track('http://myurl/')"> > >>> turns the provided url into something like > >>>http://host/tracking?url=http%3A%2F%2Fmyurl%2F > >>> in the output. > >>> i've been trying to use a external procedure like this. > >>> ## Script (Python) "track_link" > >>> ##bind container=container > >>> ##bind context=context > >>> ##bind namespace=_ > >>> ##bind script=script > >>> ##bind subpath=traverse_subpath > >>> ##parameters=self,url > >>> ##title=track link > >>> ## > >>> return "%s%s" % (self.tracking_prefix, url_quote(url)) > >>> This doesn't work because because the method doesn't have access to > >>> the environment. Obviously I don't wan't to pass everything explicitly > >>> into the function as this would defeat the purpose of the exercise, > >>> namely to provide a terse syntax. > >>> I have a background in other languages so I might be missing something > >>> conceptually with regardZopeand DTML.. Is there a better was of > >>> doing this, perhaps without using external methods? Currently im doing > >>> the following which isn't very elegant: > >>> in content document > >>> <a href="<dtml-let exturl="'http://www.mylink.com/"><dtml-var > >>> tracking></dtml-let>">link</a> > >>> ... > >>> tracking: > >>> <dtml-var tracking_prefix><dtml-var name="exturl" url_quote_plus> > >>> Appreciate any input you might have on this- > >> Is it really needed to use an external method for this, or isn't a > >> "normal" python script enough already? > > >> If it has to be an External method, you can't access such a context > >> AFAIK. But then you can create a python script that _has_ this context, > >> and passese it to the external method. Not the nicest solution, but > >> should work. > > >> Diez > > > Like I said i'm a newbie. I though the deal withZopewas that i > > couldn't really do inline scripting (for security reasons) > > like in php but had to use these external methods. how does one go > > about creating a "normal" python script exactly and > > how do I invoke it's functionality? > > Read the docs: > > http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Scripting... > > There's everything in there you need. > > Diez
Thanks, this is exactly what i needed. And Btw. the answer is to use the 'context' keyword. - Jens P.S. And thanks to everyone else for their feedback :-) -- http://mail.python.org/mailman/listinfo/python-list