Hi Max I understand what you explain but what about if I install a new product? Rewrite the factory? I think is not a good solution don't you think?
Thanks!! ----- Original Message ----- From: "Max M" <[EMAIL PROTECTED]> To: "Garito" <[EMAIL PROTECTED]> Cc: "Lista Oficial de Zope" <[EMAIL PROTECTED]> Sent: Friday, March 12, 2004 10:34 AM Subject: Re: [Zope-dev] How to create a product with all_meta_types and the > Garito wrote: > > > Hi Chris! > > > > Want I want exactly is to create a product's object by his name > > programmatically not by the construction form > > Is this posible? > > > You cannot know the name of the constructor function, unless you read > the source. > > The constructors added to Zope during the product initialisation can be > both forms and actual function methods. There is no way of knowing > which. And there can be more than two. > > So you would need to write a factory function based on the info you can > get from the source. Ie. in an external method. Something like:: > > > def portal_factory(self, parent, portal_type, id='', title='',): > > "Adds the content. A factory function." > > # generate a general id > if id == '': > id = self.ZopeTime().strftime(portal_type + '_%Y%m%d_%H%M%S') > > zope_factory = parent.manage_addProduct > > # add the content > if 'Document' == portal_type: > zope_factory['Document'].manage_addDocumentAction(id) > > elif 'Some Type' == portal_type: > zope_factory['Some Type'].manage_addSomeTypeAction(id) > > else: > raise 'Error adding portal_type' > > # get the newly added content > obj = getattr(parent, id) > # Add the title > obj.title = title > > return obj > > > -- > > hilsen/regards Max M, Denmark > > http://www.mxm.dk/ > IT's Mad Science > _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )