[Zope-dev] Re: Need for "aq_base" in DTML (was: Re: [Zope] Dumb DTML question - existance check of an object)
Satheesh Babu
vsbabu@csoft.net
Wed, 26 Jul 2000 16:47:05 -0400
I made a DTML method which works, but doesn't do it
recursively. I'll try external methods.
Thanks..
<dtml-if fname>
<dtml-try "_.getitem(_['fname'],1)">
<dtml-with "_.getitem(_['fname'],1)">
<dtml-var title>
<dtml-unless "meta_type=='Folder'">
Item exists, but not a folder
</dtml-unless>
</dtml-with>
<dtml-except>
Folder not found
<dtml-if ftitle>
<dtml-try>
<dtml-call "manage_addFolder(_['fname'],_['ftitle'])">
Folder Created
<dtml-except>
Folder could not be created
</dtml-try>
<dtml-else>
<dtml-try>
<dtml-call "manage_addFolder(_['fname'],_['fname'])">
Folder Created
<dtml-except>
Folder could not be created
</dtml-try>
</dtml-if>
</dtml-try>
</dtml-if fname>
----- Original Message -----
From: Dieter Maurer <dieter@handshake.de>
To: Satheesh Babu <vsbabu@csoft.net>
Cc: <zope@zope.org>; <zope-dev@zope.org>
Sent: Wednesday, July 26, 2000 3:27 PM
Subject: Need for "aq_base" in DTML (was: Re: [Zope] Dumb DTML question -
existance check of an object)
> Satheesh Babu writes:
> > I have a URL, say, /sub1/sub2. How do I check in DTML
> > whether
> > 1. folder sub1 exists or not
> > 2. If not, create it.
> > 3. folder sub2 exists under sub1
> > 4. If not, create it.
> It is easy, if you are a bit sloppy.
>
> * Access to "/": "PARENTS[-1]"
> * Existence check: "_.hasattr(object,what)"
> NOTE, that this is the sloppy part.
>
> - "_.hasattr" will return true, if "object" has
> attribute "what" (that is what we want)
> *OR* when it has acquired such an attribute
> (we do *NOT* want that here).
>
> What we would need is a DTML accessible version
> of "aq_base". This is trivially handled by
> an external method.
>
> - it returns true, when there is such an attribute.
> This may not be a folder.
>
> You can check "meta_type" to see, it is indeed a folder.
>
> * creation: "manage_addFolder"
> look in the ZDP's (http:zdp.zope.org) object reference
> for the function's signature.
>
> I think, this info is available in the Zope 2.2 help system, too.
>
>
> Dieter
>