[Zope-CMF] Re: backporting GenericSetup to CMF-1.5
Raphael Ritz
r.ritz at biologie.hu-berlin.de
Tue Nov 15 06:24:05 EST 2005
Rob Miller wrote:
[..]
>
> you're more than welcome to either pitch this to plone-devel or to grab
> it by the horns and start working on it yourself. :-).
Hi Rob and all other CMF developers,
I know I'm getting myself in danger now as I know too little
yet about Zope 3 and I have no practical experience whatsoever
using the new event system or not even the slightes idea to
what extend the work for CMF-2.0 already achieved progress here.
So, before I start digging deeper into this I have some
fundamental (and hopefully trivial!) questions:
This is about using events for catalog awareness
If it's already there, please tell me and you can
stop reading. If not:
What would it need to get there?
I consider support for container events as given (Zope 2.9
or Zope 2.8 and Five 1.2).
- Does that mean these events are there now when content
is added/changed/removed in a CMF site or is there anything
to be done first (like declaring Portal[Folder|Content]
to provide some interface and making them generate these
events?; add or change some base classes?)
- Is there anything like a ZCatalog in Zope 3 including event
handlers for IObject[Added|Removed|Changed|...]Event triggering
[index|unindex|reindex] etc?
If not: providing such handlers for the current catalog
should be straight-forward. Something like
getToolByName(obj, 'portal_catalog').[un|re]indexObject(obj)
or am I missing something? (how to deal with multiple
catalogs? wouldn't this be the wrong place for handling
this anyway? but where then?)
- Glueing it together needs some interface on the content
side. E.g., say there is a marker interface 'ICatalogAware'
declared for portal content and portal folder.
Then we could configure subscribers like
...
<subscriber
for="Products.CMFCore.interfaces.ICatalogAware
zope.app.container.interfaces.IObjectAddedEvent"
handler="Products.CMFCore.CatalogTool.addedContent"
/>
...
where - again - the handler could be as easy as
def addedContent(obj, event):
getToolByName(obj, 'portal_catalog').indexObject(obj)
(BTW: where are those handlers typically defined?
Should it be a method of the specific tool or a more
general utility? If defined on the tool itself, how would
one deal with several instances - either different CMF sites
in one Zope instance or several catalogs in one portal site)
Now my questions: is the outline given above correct?
At least w.r.t. the big picute?
If so: Having this in place shouldn't this allow for easy
extension to multiple catalogs (like the uid or reference
catalogs from AT) by simply registering them as further
subscribers to the respective events? How to do that?
(RTFM manual pointers welcome; maybe I just need to
read Philipp's chapter on sites and local utilies again
but as of now I don't see how you get this together with
the TTW generation of arbirary many CMF and/or Plone
sites in one Zope instance).
If this would be all true, is it correct to infer
then that this is something Plone shouldn't have to
deal with at all (except for configuration)?
Feedback welcome!
Raphael
>
> -r
>
> _______________________________________________
> Zope-CMF maillist - Zope-CMF at lists.zope.org
> http://mail.zope.org/mailman/listinfo/zope-cmf
>
> See http://collector.zope.org/CMF for bug reports and feature requests
>
More information about the Zope-CMF
mailing list