Add support for taxonomies to Plone contents as a news tag-like field
Table of contents
- What is this?
- How to use?
- Updating the catalog
This product add a new field to all Plone contents (someway similar to the keyword field) that allow to select one or more taxonomies to reference.
A Taxonomy is commonly like normal folder and you can create them all around the site. They gives only some differences when you add additional contents inside them (but to select a taxonomy for a content you don’t need that the content is inside it).
Also the taxonomy support must be explicitly enabled on the site root and/or in one or many of the site’s subsections. In this way you can have different taxonomies set in different areas of the site.
The list of taxonomies selectable on simple contents is filtered locally if there are different sections activated.
The activation to one section block the inheritance of other taxonomies from upper levels.
Filtering policies are the following:
- if there isn’t any parent of the object that implements the “ITaxonomyLevel” interface, no taxonomy will be shown and so no one are selectable.
- if there are one or more parents that provides the interface, we take the nearest parent and search its availables taxonomies.
- if there aren’t taxonomies, or there isn’t any activated object (object that implements ITaxonomyLevel interface; it could be also the site root) the field doesn’t appears in the field edit form.
- if an object is created inside a taxonomy, the taxonomy will be the default value in the field.
To activate the taxonomy level you can access the “Add to taxonomy roots” in the “Action” menu.
Create Taxonomy folders normally in the site.
You can also mark any other object as a Taxonomy-like but to do this you need to manually apply the collective.taxonomysupport.interfaces.IFolderTaxonomy interface.
This product add also a new collection criteria (Site Areas) for easilly use taxonomies in (old-style) collections.
Taxonomies stores 2 indexes in catalog: getSiteAreas and SiteAreas.
The first index stores a list of uids fo selected taxonomies of an object, and the second (SiteAreas) stores the titles of selected taxonomies, for a human-usage. If you need to update the all catalog (or even rebuild it), “SiteAreas” indexes and metadata will be partially inconsistent because the indexer method make a catalog query to get the taxonomy right titles, so you need to do 2 more steps:
- reindex “SiteAreas” index from portal_catalog in ZMI
- launch a view that update metadatas for all items in the catalog with a selected taxonomy: http://your-plone-site/@@fix-metadata
This product has been tested on:
- Plone 3.3
- Plone 4.2
Developed with the support of Regione Emilia Romagna;
Regione Emilia Romagna supports the PloneGov initiative.
- Make taxonomy categorization searchable in SearchableText index. We don’t provide an upgrade step to update old stored contents because it could be a very slow task and it’s better to do it in a separate task (maybe with a script or pdb). [cekk]
- Added utility view that update metadata infos [cekk]
- Added catalog.xml for “SiteAreas” metadata [andrea]
- Add modify to handle default page case and add test [lucabel]
- Add import permission.zcml from CMFCore in case of plone4 [lucabel]
- Update test to works on plone 4
- Added Plone 4.2 compatibility
- updated documentation [keul]
- fixed translations [keul]
- added proper i18ndude script [keul]
- Add action to mark/unmark taxonomy root [lucabel]
- changed product to allow all contents to be a taxonomy, implementing IFolderTaxonomy [andrea]
- added tinyMCE configuration for FolderTaxonomy content [mirco]
- version 1.0.2 was bad; partial rever of changes [keul]
- added a new collection criterion, only for Taxonomy [keul]
- fixed translations [keul]
- when used for collections, show all Taxonomy, not only the used ones [keul]
- collective.taxonomysupport was breaking some contents like EasyNewsletter [keul]
- Initial release