[Zope-CMF] Extending a Plone Object

Sim Harbert sim@noisygecko.com
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.

-Sim

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?
>
>Cheers,
>
>- David
>
>---
>David Rawle
>Checked for Viruses with Norton AntiVirus
>Secure Crytographic Signature (S/MIME) may be attached
>
>----- Original Message -----
>From: "Florent Guillaume" <fg@nuxeo.com>
>Newsgroups: local.lists.zope.zope-cmf
>To: <zope-cmf@zope.org>
>Sent: Friday, February 21, 2003 3:18 PM
>Subject: Re: [Zope-CMF] Extending a Plone Object
>
>
>  
>
>>Raphael Ritz  <r.ritz@biologie.hu-berlin.de> wrote:
>>    
>>
>>>>I would like to create a new content type by adding a new field
>>>>        
>>>>
>(summary) to
>  
>
>>>>the standard Event object. And then create new forms based on the
>>>>        
>>>>
>standard
>  
>
>>>>event forms with the new field on it.
>>>>        
>>>>
>>>Unfortunately you can't extend existing content types by simply adding a
>>>few more
>>>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
>>Information.
>>
>>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
>>return ob
>>
>>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
>>--
>>Florent Guillaume, Nuxeo (Paris, France)
>>+33 1 40 33 79 87  http://nuxeo.com  mailto:fg@nuxeo.com
>>
>>_______________________________________________
>>Zope-CMF maillist  -  Zope-CMF@zope.org
>>http://mail.zope.org/mailman/listinfo/zope-cmf
>>
>>See http://collector.zope.org/CMF for bug reports and feature requests
>>
>>
>>    
>>
>
>
>
>_______________________________________________
>Zope-CMF maillist  -  Zope-CMF@zope.org
>http://mail.zope.org/mailman/listinfo/zope-cmf
>
>See http://collector.zope.org/CMF for bug reports and feature requests
>  
>