Jens schrieb: > Hello Everyone > > I'm newbie to Zope and 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 regard Zope and 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 -- http://mail.python.org/mailman/listinfo/python-list