Archetypes is a framework for automating the development of products in Plone CMS or other CMFs. Its purpose is to provide a common method for building content objects, based on schema definitions.
Archetypes can do all the heavy lifting required for bootstraping a content type, which gives developer time and space to focus on the relevant things in life: business rules, application design, planning, and scaling.
A content type might be a document, image, event, or any other object available for users to add to a Zope content management site. Most content management projects involve introducing new types of content, which can be both complicated and time consuming. Archetypes provide an extensible, simple framework that can simplify both the development and maintenance costs of CMF content types while reducing the learning curve for the simpler cases.
As soon as a description for a content type in Python is written, Archetypes handle almost everything else, including editing forms and creating view for the developer. This grants an opportunity to develop content types with a minimum amount of code. The less code written means a much lower probability of bugs, less code to maintain as Plone changes, a quick cycle of development, and lower costs.
Features
- Views and edit forms are autogenerated
- Standard security setup. All the security work is done for you, so if you want the default setup, you don't have to change anything
- Automatic content type registration with the CMF tools
- References between objects
- Alternate storage options, such as storing your data in relational database instead of Zope's standard database
- Data transformation capabilities, such as changing Microsoft Word in Hypertext Markup Language (HTML)
- Maintaining of unique object Ids, which means you can always find an object, even if it has been moved.
- Configurability of CMF actions
- Easy installation of the generated content objects
Basic Architecture
The creation of a new content type using Archetypes involves a main text file (python) that defines the fields and other objects within your type, their properties, and their behavior. Archetypes uses this information to autogenerate on demand all forms and pages needed to add, edit, and view your types data. When you have written this file, you then have a product that you would install just like any other CMF/Plone product.