[Zope] Newbie Q:<dtml-with> and the PARENTS tag

Ausum augusto@artlover.com
Thu, 12 Jul 2001 02:01:40 -0500


Your code is right:
 <dtml-with "PARENTS[0]" only>
      <dtml-if PropertyX>
       <dtml-var PropertyX>
       .....do some stuff...
      <dtml-else>
       .... something else
     </dtml-if>
 </dtml-with>

The only thing to consider is that Propertyx must be at every folder at
wich Method1 will work, no matter it has a value or not. Of course, if
it had a value, it will show off. If not, Zope will trigger the else
condition without looking downward.


Ausum


List Subscriptions wrote:
> 
> Thanks very much for the suggestion, but Method1 needs to be a
> method; if it's a document, some of the other methods it calls
> fail to function properly.
> 
> In addition, though what you say makes sense to me, it doesn't
> seem to work that way in practice.  I placed the code in DTML
> Doc and observed the same behavior:  PropertyX (actually,
> another DTML Doc) was picked up from higher up in the hierarchy,
> even with the 'only' parameter.  Also, as I noted, <dtml-var
> "PARENTS[0].id"> DOES pick up the proper container (perhaps b/c
> I already have other items in the folder, perhaps, but it does
> show that it's working with the right object).
> 
> If you (or anyone else on the list) has more suggestions, I'm
> all ears.  Again, I don't really care how it's done, I just want
> the basic logic to work.  Are there any other acquisition
> keywords I could use?
> 
> Marc
> 
> On Wednesday, July 11, 2001, at 10:03  PM, Ausum wrote:
> 
> > The reason is that  FolderC isn't a container, unless it has an
> >  object within it. Methods doesn't count for that.
> > If you want your code to work make Method1 a DTML document.
> >
> >
> >
> > Ausum
> >
> >
> >
> > List Subscriptions wrote:
> >>
> >> Although I've searched all the How-Tos and Tips, I'm probably
> >> just missing something...
> >>
> >> I have a setup as follows:
> >>
> >> Root
> >>       FolderA
> >>            PropertyX
> >>            FolderB
> >>                   PropertyX
> >>                   Method1
> >>            FolderC
> >>                    Method1
> >>
> >> What I want to do is: for Method1, check the enclosing item for
> >> Property X.  PropertyX could be either a property or a DTML
> >> Document (I realize these may be two separate cases).  If
> >> PropertyX exists in/as a property of the Folderthat the Method
> >> is in, I want to execute some code; if it doesn't, then I don't
> >> want anything to happen.
> >>
> >> Here's what I started with:
> >>
> >> <dtml-with "PARENTS[0]" only>
> >>      <dtml-if PropertyX>
> >>       <dtml-var PropertyX>
> >>       .....do some stuff...
> >>     </dtml-if>
> >> </dtml-with>
> >>
> >> This doesn't work.  Using the schema outlined above, both
> >> FolderB/Method1 and FolderC/Method1 return a PropertyX, but in
> >> the latter case it's the PropertyX from FolderA (of course....).
> >>
> >> So, does the 'only' option only restrict acquisition downward?
> >> Or what?  This just doesn't jibe with how the docs describe the
> >> only option -- maybe there's something up with my Zope?
> >>
> >> Most importantly, how can I do what I need to do?
> >>
> >> I've tried plugging all kinds of expressions into the with tag,
> >> such as aq_explicit and aq_parent, but I'm not very familiar
> >> with Python and am probably doing it wrong.  Really, I don't
> >> care how I solve this, so long as I do!  I've tried about a ton
> >> of things and I can't get around Zope continuing to acquire
> >> upward irregardless of the 'only' modifier.
> >>
> >> When I tried it with <dtml-with PARENTS only> (no [0]), the if
> >> test fails in all cases.  Yet in all of these cases, <dtml-var
> >> "PARENTS[0].id"> returns the id of the proper folder (FolderB,
> >> for example), so I know that PARENTS[0] is the place I want to
> >> look.
> >>
> >> Help!!!!  (c.c. me via regular e-mail as well, if possible - I'm
> >> on the Digest version and would love to get answer as soon as
> >> someone gives me one!)
> >>
> >> Marc
> >> marc@mail.su.ualberta.ca
> >>
> >> _______________________________________________
> >> Zope maillist  -  Zope@zope.org
> >> http://lists.zope.org/mailman/listinfo/zope
> >> **   No cross posts or HTML encoding!  **
> >> (Related lists -
> >>  http://lists.zope.org/mailman/listinfo/zope-announce
> >>  http://lists.zope.org/mailman/listinfo/zope-dev )
> >
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )