[Zope-PTK] Portal content wherever you want it
Kevin Dangoor
kid@kendermedia.com
Sun, 21 May 2000 16:05:52 -0400
----- Original Message -----
From: "Phillip J. Eby" <pje@telecommunity.com>
To: "Kevin Dangoor" <kid@kendermedia.com>; "Steve Alexander"
<steve@cat-box.net>; "Chris Withers" <chrisw@nipltd.com>
Cc: <zope-ptk@zope.org>
Sent: Sunday, May 21, 2000 3:25 PM
Subject: Re: [Zope-PTK] Portal content wherever you want it
> (See the new ZPatterns
> wiki for info on InjectionFolders and DataInjectors, coming in 0.4.0.)
Thanks for the updated docs. When do you think 0.4.0 will be ready?
> Yes, exactly. Specifically, you use an InjectionFolder-derived folder
> somewhere in the path to where your PortalContent DataSkins will be
stored.
> You add DataInjectors to the approriate tab of the InjectionFolder,
> configuring them for what object types they will serve as DataManagers
for.
> Last, but not least, you add IndexingAgents, RuleAgents,
> AttributeProviders and SheetProviders to each DataInjector to configure
it.
> One kind of AttributeProvider you can add will be ClassExtender - a
simple
> container that lets you add methods and properties which will be set in
the
> DataSkins. (ClassExtender probably won't get built until the 0.5.0 cycle,
> however.)
ClassExtender will be useful, indeed.
Maybe the Zope root should eventually be replaced with an InjectionFolder.
Or maybe we should set up objects to work regardless of whether there is a
DataInjector above them.
Here's what I'm ultimately thinking: wouldn't it be neato if I could create
a Document object in one part of the ZODB, and it doesn't get cataloged or
anything. In another part, I configure a DataInjector for Document so that
an IndexingAgent will catalog it and a RuleAgent will email people about the
addition.
In fact, I believe someone just sent a message to the Zope list within the
last 24 hours about getting DTML Documents to automatically index themselves
in ZCatalog.
> This all sounds rather complex, but that's probably due more to the funky
> names than anything else. In all probability the front-end name of
> "DataInjector" will be "Customizer", and InjectionFolder will be "Folder
> w/Content Customizer Support". So, in plain English... You put your
> portal content objects somewhere underneath a folder with customizer
> support if you want to customize them. You add a customizer to that
folder
> for each kind of thing you want to customize. And you put things in each
> customizer for each data management, indexing, rule-handling, or other
> customization you want to make.
This is great! What happens in a scenario like this:
InjectionFolder A
DataInjector for Documents
InjectionFolder B
DataInjector for Links
Document
Will the Document in B be handled by A's DataInjector? In other words, are
DataInjectors acquired?
Also, do you forsee any big performance penalty for all of this wonderful
flexibility?
Kevin