[Zope-dev] explicit/controlled/filtered acquisition for Folders?

Michael Halle halazar@media.mit.edu
Fri, 08 Jun 2001 14:03:51 -0400


After dealing with using Zope for websites for two years, I've come to
the point where I think implicit acquisition should be an optional
feature when retrieving web content that looks less like objects and
more like folders of documents.  

Implicit acquisition means that when you ask for
"/folder1/folder2/folder3/mydoc.html", you might well get /mydoc.html
.  That might be useful in parts of the object world, but for folders
and documents it is almost never right.  Yes, if all your links are
correct, that won't happen, but users don't always have links correct.
Furthermore, the "infinite recursion" problem can easily happen when
search engines follow self-referential links.  

It's possible to work around the problems by using "aq_explicit" and
"absolute_url", but those strategies are cumbersome as they represent
Zope-specific tailoring.

Acquisition isn't limited just to implicit acquisition, though.  Has
anyone put any thought or work into creating an ObjectManager and
Folder that allowed explicit, controlled or filtered acquisition?  

* ExplicitAcquisitionFolders would act as "limits" or "stops" that
  isolate different zope application trees from each other.  

* Controlled or filtered acquisition folders could have a property
  that declares which methods would be acquired, much like "import"
  statements in python.

Either option would let developers choose, understand, and limit what
they were acquiring from outside the local context.  I think both
document- and object-like Zope sites would benefit.  Choice of
mechanism is good.

I've looked into the required changes some, but the ObjectManager and
Folder classes know about each other in a way that doesn't seem
completely straightforward to an outsider.  I don't think I know
enough to write the new classes, especially without a wholesale copy
of the existing classes.

To those in the know, how hard would it be to do, and what issues
would be involved?

Thanks.

Michael Halle
mhalle@media.mit.edu