Jens schrieb: > On Jan 25, 3:19 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: >> 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 > > Like I said i'm a newbie. I though the deal with Zope was 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/ScriptingZope.stx There's everything in there you need. Diez -- http://mail.python.org/mailman/listinfo/python-list