[Zope-CMF] Extending a Plone Object
Fri, 21 Feb 2003 11:40:14 -0500
This is the same thing I have been wanting to do, and I guess the
"scriptable type" method would work pretty well. But...
What I am finding out is that the hard part is getting all of the
editing and viewing "skins" set up. And when I mean hard, I just mean
that it is not all in one nice easy to install filesystem product. I am
developing on one or more Zope installations and would like to easily
move it to a production site. I don't want to have to make all the
customizations through the ZMI for each site. (And I do know about
using ZEO clients and scripting it all, but I don't have ZEO setup, and
would have to write a lot of scripts to do that.)
I tried just hacking the CMFCalendar Event type directly to have custom
data fields. But when Plone is being used, the skin edit forms aren't
the same ones that come with CMFCalendar, so that pretty much defeats my
original goals. It took me a while just to figure out which
"event_edit" was being used.
So I guess in the end creating my one Plone filesystem product which
extends sub-classes the Event type might be easiest. I guess I will try
that. I have installed an PloneMinimalProduct, and will just try
starting with that.
The good part is that I am quickly becoming a Plone expert. The bad
part is that what I thought wouldn't be too hard to do has taken a lot
of my time.
I guess this is a Plone problem, mostly, but it does involve CMF. :-)
But, if I come up with something that I release, I will try my darnedest
to make it work with non-Plone sites too.
David Rawle wrote:
>That worked beautifully...thank you so much. I have a new portal type based
>on Event...easy when you know how, huh?
>Checked for Viruses with Norton AntiVirus
>Secure Crytographic Signature (S/MIME) may be attached
>----- Original Message -----
>From: "Florent Guillaume" <firstname.lastname@example.org>
>Sent: Friday, February 21, 2003 3:18 PM
>Subject: Re: [Zope-CMF] Extending a Plone Object
>>Raphael Ritz <email@example.com> wrote:
>>>>I would like to create a new content type by adding a new field
>>>>the standard Event object. And then create new forms based on the
>>>>event forms with the new field on it.
>>>Unfortunately you can't extend existing content types by simply adding a
>>>properties (I wish there were an easy way for this).
>>There is a very easy way to do this built into CMF, the Scriptable Type
>>In the Types Tool, create a new Scriptable Type Information, deriving it
>>from the base type you need. Name it "MyType" for instance. As
>>"Constructor path", type the name of a Python Script, for instance
>>MyType_create. Create this Python Script in the Types Tool:
>>##parameters=container, id, *args, **kw
>># create the base object
>>container.invokeFactory('Some Base Portal Type', id)
>>ob = getattr(container, id)
>># now add the properties you need
>>ob.manage_addProperty('foo', 1, 'int')
>># finally return the object
>>The only thing you have to be aware of is that during script execution,
>>the portal_type of your object will be the base portal type and not yet
>>the one of your final type.
>>Florent Guillaume, Nuxeo (Paris, France)
>>+33 1 40 33 79 87 http://nuxeo.com mailto:firstname.lastname@example.org
>>Zope-CMF maillist - Zope-CMF@zope.org
>>See http://collector.zope.org/CMF for bug reports and feature requests
>Zope-CMF maillist - Zope-CMF@zope.org
>See http://collector.zope.org/CMF for bug reports and feature requests