Terse Syntax through External Methods

Jens jens at aggergren.dk
Tue Jan 29 08:58:54 EST 2008


On Jan 25, 3:19 pm, "Diez B. Roggisch" <de... at nospam.web.de> 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?



More information about the Python-list mailing list