plone.app.contenttypes offers default content types for Plone based on Dexterity. This package replaces Products.ATContenttypes and will provide the default-types in Plone 5.

Warning: plone.app.contenttypes can be used on a new site without problems. Using it on a site with existing content requires migrating the sites content and is only recommended if you know what you’re doing! Please see the chapter “Migration”

The main difference from a users perspective is that these types are extendable through-the-web. This means you can add or remove fields and behaviors using the control-panel “Dexterity Content Types” (/@@dexterity-types).

The aim is to mimick the old default-types as closely as possible, not to change the content-creation experience for editors.

If you install plone.app.contenttypes on a fresh site (i.e. when no content has been edited or added) the existing default-content will be replaced by dexterity-content to make sure it is still editable.

If you install plone.app.contenttypes in a existing site all Archetypes-based content of the default Types still exists and can be viewed but can’t be edited. On installation plone.app.contenttypes removes the type-definitions for the old default-types like this:

<object name="Document" remove="True" />

To make this content editable egain you need to migrate it to Dexterity (please see the section on migration) or uninstall plone.app.contenttypes.

Archetypes-based content provided by add-ons like Products.PloneFormGen will still work since only the default-types are replaced.

To remove plone.app.contenttypes and return full functionality to old content and restore the AT-based default-types you have to install the import step “Types Tool” of the current base profile. Follow the following steps:

in the ZMI navigate to portal_setup and the tab “import”

in “Select Profile or Snapshot” leave “Current base profile (<Name of your Plonesite>)” selected. This is usually Products.CMFPlone

select the Types Tool (usually Step 44)

click “import selected steps”

Any content you created based on plone.app.contenttypes will not be editable until you reinstall plone.app.contenttypes.

Before version 1.0a2 the content-items did not implement marker-interfaces. They will break in newer versions since the views are now registered for these interfaces (e.g. plone.app.contenttypes.interfaces.IDocument). To fix this you can call the view /@@fix_base_classes on your site-root.

The migration should warn you if any of your types are extended with archetypes.schemaextender. The data contained in these fields will be lost.

You need to implement a custom migration for your types and dexterity-behaviors for the functionality provided by the schemaextenders. This is an advanced development task and beyond the scope of this documentation.

Custom content will not be changed by plone.app.contenttypes and should continue to work as expeced. However if you’d like to migrate your content-types to Dexterity (you’ll have to create these types in Dexterity first) you might want to have a look at the code of plone.app.contenttypes.migration.migration.NewsItemMigrator as a blueprint.

plone.app.dexterity. Dexterity is shipped with Plone 4.3.x. Version pinns for Dexterity are included in Plone 4.2.x. For Plone 4.1.x you need to pin the correct version for Dexterity in your buildout. See Installing Dexterity on older versions of Plone <http://developer.plone.org/reference_manuals/external/plone.app.dexterity/install.html#installing-dexterity-on-older-versions-of-plone>.

Fix Bug on SearchableText_file indexer when input stream contains
characters not convertable in ASCII. Assumes now utf-8 and replaces
all unknown. Even if search can not find the words with special
characters in, indexer does not break completely on those items.
[jensens]

Remove dependency on plone.app.referenceablebehavior, as it depends on
Products.Archetypes which installs the uid_catalog.
[thet]

Make collection syndicatable.
[vangheem]

Include the migration module not only when Products.ATContentTypes is
installed but also archetypes.schemaextender. The schemaextender might not
always be available.
[thet]

Add fulltext search of file objects.
[do3cc]

Fix link_redirect_view: Use index instead of template class var to
let customization by ZCML of the template.
[toutpt]