I wrote initally the Plone product collective.taxonomy because of lack of taxonomy modules for Dexterity content types. The already existing Products.ATVocabularyManager is old, but very powerful, but still rely on Archetypes and older technologies. I wanted to create something brand new for Dexterity content types and in particular Plone 4. I wrote the product mainly in cooperation with Malthe Borch.
Our objectives when writing the product were:
- Handling a lot of data. We imagined several thousands of entries in each taxonomy.
- Handling term hierarchy i.e. not just flat dictionaries.
- Using standardized format, we choose VDEX.
- Easy import/export via GenericSetup.
- Elegant integration with Dexterity behaviors.
- Multilingual support.
We found later, Dexterity was not able to have dynamically registered behaviors, we got these changes pushed back to plone.(app.)dexterity, so the product works well with vanilla Plone 4.3. We reached all our goals, and further on implemented a WYSIWYG editor. The product has become quite stable, but there are still room for improvements, both with regards to features and documentation.
Installation and managing taxonomies
The product is installed via the “Add-ons” control panel in Plone. After the installation is complete, a “Taxonomy” control panel option will appear under “Add-on configuration”. The taxonomy control panel looks like the screenshot below.
When the product is installed an example taxonomy is created. If you want to create a new taxonomy you can select “Add Taxonomy” and it will take you to a form where you can enter the name, title, etc. of the new taxonomy. If you want to edit these informations for an existing taxonomy just select the taxonomy (by the checkbox) and select “Edit taxonomy”. “Delete Taxonomy” and “Export” works in the same way. “Export” will produce a VDEX file you can save on your hard drive. If you want to import a VDEX file to a taxonomy, you should select “Edit taxonomy” and then upload the file. If you want to edit the data via the WYSIWYG editor, just select the taxonomy and press “Edit taxonomy data”. I will take to a page that looks like the following.
Here you can easily edit the data, “Add node” will add a child node to the tree. The “Taxonomy” root node is a fake node, so it is not being stored, it is just there for the structure.
Integration with Dexterity content types
When you have created a taxonomy you can add it to one or more content types. A behavior is automatically generated, so you can simply go to the dexterity control panel (Dexterity Content Types in the main control panel), then find the content type and add the behavior to the content type (in the “Behavior” tab).
After you attached taxonomy to the content type, the taxonomy should be immediately visible on the add- and edit forms.
Concluding remarks
I hope you will enjoy using the product. If you want to contribute you can find the repository on github. If you have problems using the product please open an issue on the github page as well.