archetypes.schemaextender is a Plone product that allows you to modify an Archetypes schema, using simple adapters. This can be used to add new fields, reorder fields and fieldsets or make other changes.
The most common use of schema extension is to allow add-on products to enhance standard Plone content types, for example by adding an option that can be set to toggle special behaviour.
schemaextender hooks into the Archetypes framework by registering an ISchema adapter for BaseContent and BaseFolder, making it responsible for providing the schema for all types derived from those classes. This includes all standard Plone content types. Since only one ISchema adapter can be active schemaextender provides its own mechanism to modify schemas using named adapters. Named adapters are allowing to register more than one schemaextender per adapted interface.
There are three types of adapters available:
* ISchemaExtender: using this adapter you can add new fields to a schema.
* IOrderableSchemaExtender: this adapters makes it possible to both add new fields and reorder fields. This is more costly than just adding new fields.
* IBrowserLayerAwareExtender: this adapters are making use of plone.browserlayer, so that the extender is only available if a layer is registered.
* ISchemaModifier: this is a low-level hook that allows direct manipulation of the schema. This can be very dangerous and should never be used if one does not know exactly what she/he is doing!
The adapter types are documented in the ''interfaces.py'' file in archetypes.schemaextender.
· Plone CMS
What's New in This Release: [ read full changelog ]
· Acquire request object via local site hook if object is not acquisition-wrapped (in ``cachingInstanceSchemaFactory``). This fixes caching issues with objects rendered using DTML. Note that this is likely a bug in the ``DocumentTemplate`` code. Ideally, the issue should be resolved there. [malthe]