Skip to main content

Virtual tree categories/keywords for Plone

Project description


This project aims to virtualize Plone default keywords (categories), which are flat, to the tree. Contains Archetypes widget, based on InAndOut widget, which replaces Plone’s default widget for categories and contains configlet which allows to assign flat keywords to virtual tree defined in the configlet.

Site manager defines virtual tree nodes and assigns keywords to the nodes. One keyword may be assigned to any number of nodes (0-all).

Archetypes widget contains javascript based filter which allows to filter out unwanted nodes and displays keywords in the selected node(s) only. Keywords are stored in the same way as in Plone default so storage is 100% compatible and don’t require any migrations. You can always remove this package and your content-keywords assignment stays untouched.

The controlpanel contains checkbox, which allows to set the VirtualTreeCategories widget as default widget for the Subject field of all Archetypes based content types.


Install using buildout.cfg. If you want to use this product in Plone3, you must specify [plone3] extra due to dependency on collective.js.jquery (this package requires jQuery 1.3+).

Plone 3:

eggs =
    collective.virtualtreecategories [plone3]

Plone 4:

eggs =


eggs =
    collective.virtualtreecategories [dexterity]

Control panel

Archetypes widget

Dexterity widget

If you want to use this widget in your dexterity content type, you need to specify [dexterity] extra in eggs section of the buildout. You also need to use Keyword field from collective.z3cform.keywordwidget for your schema field and finally set VirtualTreeCategoriesFieldWidget as widget for the field. Please note, this feature requires collective.z3cform.keywordwidget > 1.1.1 or svn branch currently.


from zope import schema
from plone.directives import form
from collective.z3cform.keywordwidget.field import Keywords
from collective.virtualtreecategories.dexterity.widget import VirtualTreeCategoriesFieldWidget

class ICustomCategorization(form.Schema):

    subjects = Keywords(

    new_subjects = schema.Tuple(
        title=u'New categories',
        description=u'Enter new keywords, one per line.',


0.3.3 (2013-01-09)

  • Added Italian translation [giacomos]

  • Added dexterity version of the widget. See Readme. [naro]

  • Added French translation [toutpt]

0.3.2 (2012-03-04)

  • Fixed serialization problem introduced in 0.3.1 [naro]

0.3.1 (2012-03-04)

  • Fixed javascript bug which prevents showing Save keywords button in the controlpanel. [naro]

  • Added option to recursive list of keywords in a category tree. This is also used for list of unassigned keywords. [naro]

0.3 (2012-03-03)

  • Updated to Plone 4.1 [naro, pcaro]

  • added link to search results of selected keywords (like search for items covered by keywords in a category) - controlpanel [naro]

  • added list of unassigned keywords (not assigned to any category) including an option to retrieve count of items assigned to this keyword and link to search results for the keyword - controlpanel [naro]

Please note, this release is not tested on Plone 3, but is supposed to work.

0.2.6 (2010-10-09)

  • improved i18n [naro]

  • Added Czech i18n [naro]

  • fixed another data serialization problem [naro]

0.2.5 (2010-10-03)

  • fixed data serialization in Plone4, caused by jQuery 1.4 change “Nested param serialization” [naro]

  • added new helper methods list_categories and list_keywords. Returns list of categories in particular path (eg. root) or list of keywords assigned to particular category respectively. [naro]

0.2.4 (2010-09-30)

  • collective.js.jquery is optional dependency for Plone3 only. If you are using Plone3, please specify [plone3] extra or add sepearate dependency on collective.js.jquery to your buildout. There is upgrade step for Plone 4, which fixes jQuery.js in portal_javascripts [naro]

  • fixed controlpanel in Plone4. Controlpanel does not use prefs_main_template. [naro]

  • Add z3c.autoinclude entry point for automatic ZCML loading in Plone 3.3+. [WouterVH]

  • Add [WouterVH]

0.2.3 (2010-03-17)

  • initial Plone 4 compatibility. It works except rendering issues on the controlpanel. [naro]

  • fixed problem with more than one Plone site in the zope instance. Thanks Rui Guerra for bug report. [naro]

  • Add Dutch translation [WouterVH]

  • Add more complete uninstall-profile [WouterVH]

  • Changing a schema via schemamodifier changes the default schema of the contenttypes (regardless of any browserlayer), so we need to make changes to a local copy of the schema. [WouterVH]

0.2.2 (2009-10-22)

  • fixed helper browser view permissions. Thanks Florent MICHON for the patch. [naro, f10w]

0.2.1 (2009-10-20)

  • fixed first-edit-bug in case of edited content is in portal_factory. Thanks Jerome Chambard for pointing to it. [naro]

0.2 (2009-09-08)

  • controlpanel - added list of currently assigned keywords to the category

  • added extender which allows to fiddle AT schema and show VTCWidget instead of KeywordWidget. It is possible to switch widget on/off in the controlpanel.

0.1.3 (2009-09-07)

  • updated README, removed evil AT schema patch recommendation

0.1.2 (2009-09-02)

  • Fixed missing collective.js.jquery dependency

0.1.1 (2009-09-01)

  • Fixed missing locales directory

0.1 (2009-09-01)

  • Initial release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (162.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page