RichDocument: Creating content types the Plone 2.1 way
This tutorial will teach you how to create content types the Plone 2.1 way, using the ATContentTypes library, by following the example of RichDocument, an extension of Plone's standard Page/Document type.
Warning: This item is marked as outdated.
- Introduction Introducing RichDocument and the contents of this tutorial
- Product structure An overview of the files inside the RichDocument product directory.
- Extending ATContentTypes The basics of creating a content type which extends ATContentTypes
- Installation Ensuring the content types are correctly installed
- Dynamic views Using CMFDynamicViewFTI to make use of the "display" menu
- Actions and aliases Standardised actions and method aliases allow for standardised URLs. However, they work a little differently than how things used to be done in Plone 2.0. The old way should still work, but the new way gives you a lot more flexibility, and is necessary if you're using ATContentTypes as a base.
- Non-structural folders Sometimes you have a folderish item that is folderish as an implementation detail, but should not appear as a folder to the user. RichDocument is a prime example.
- Multilingual content How to make RichDocument translatable through LinguaPlone
- Controlling creation Making sure content objects are created in a consistent state, using portal_factory and the rename-after-creation hook.
- Integrating with kupu How to ensure smooth co-operation with kupu, Plone's new default visual editor
- Getting folder listings How to list the contents of a folder in a performance-friendly way
- Using PIL Using the Python Imaging Library to scale images on-the-fly
- Collapsible field-sets Displaying collapsible areas of a page with a minimum of effort
- Unit testing Unit testing will make you more attractive to the opposite sex. Read on.
- Writing migrations You need migrations, because things tend to change.
- What we haven't covered There are still some things we haven't covered in this tutorial. The list below will hopefully shrink as this tutorial gets expanded. Some pointers to other resources are also included.