Il 02/07/2010 13:48, Gilles Lenfant ha scritto: > Le 2 juil. 2010 à 13:24, Yuri a écrit : > > >> Il 02/07/2010 11:43, Gilles Lenfant ha scritto: >> >>> Le 2 juil. 2010 à 10:21, Yuri a écrit : >>> >>> >>> >>>> Hi! >>>> >>>> I would like to add some method to an existing content type class. >>>> >>>> What I've done now is using schemaextender and a custom marker >>>> interface to a Document: >>>> >>>> class DocumentExtender(object): >>>> """Adapter that adds a Ripped Off From Channel field to News Items.""" >>>> adapts(IDocumentExtended) >>>> implements(IOrderableSchemaExtender) >>>> >>>> _fields = [ >>>> >>>> Schemaextender can add new fields, I would like now to add some new >>>> methods. From my understanding of ZCA, I've to write some adapter for >>>> the custom interface. Is it correct? Is there some code/product about >>>> this issue I can read from? >>>> >>>> >>> An adapter does not add any method to an existing class. Adapters work on >>> objects and not on classes. >>> >> >> Yes, to the object. I would like to have a .my_method() on objects >> with that marker interface set. So adapter should be the way. >> > Yes , you can do (with appropriate programming in the adapter class) > > ad = IMyservice(some_content_object) > value = ad.some_method(some_args) >
with proper zcml configuring, can I tell ad class already support IMyservice and do directly: value = ad.some_method(some_args) ? Thanks for the example :) > This does the same thing but this is not strictly speaking "adding a method". > > >> _______________________________________________ >> Product-Developers mailing list >> [email protected] >> http://lists.plone.org/mailman/listinfo/product-developers >> > _______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
