This bundle allows to assign nestable categories to arbitrary entities in Contao-driven systems.


This bundle allows to assign nestable categories to arbitrary entities in Contao-driven systems.


  • the module is done in a generic way, i.e. you can assign category/categories field(s) to arbitrary DCAs
  • conveniently add single category fields (radio button) or multiple categories fields (checkbox) via a simple function call
  • specify overridable properties in categories and compute the correct result depending on the given context easily
  • multilanguage support via heimrichhannot/contao-categories-multilingual-bundle
  • categories filter type for Contao Filter Bundle


Category management

alt preview

Main category management view. By clicking the cog icon you can navigate to the category configs.

Widget integration in your DCA

alt preview

Add category fields to your DCA easily. The category marked as primary category is colored in green.

Picker widgets

alt preview

Single category picker with radio buttons (selecting parent categories is allowed -> can be disallowed if necessary; no primary category marker necessary)

alt preview

Single category picker with checkboxes (selecting parent categories is disallowed; the yellow asterisk marks the primary category -> this attribute is stored to an automatically created field named <categoriesFieldname>_primary)



  1. Install bundle with composer or contao manager

    composer require heimrichhannot/contao-categories-bundle
  2. Update database

  3. Add category support to the datacontainer you want, e.g. news

Filter bundle integration

This bundle comes with two filter types:

  • CategoryChoiceType let you select categories to filter a list.
  • ParentCategoryChoiceType is an inital filter to filter your list based on a parent category (means all elements are in a child category of the selected parent).

Entity structure

alt entities

Table Description
tl_category Contains the category instances
tl_category_association Association table between tl_category and your DCA's table
tl_category_context Defines context keys (simple strings) usable in category configs
tl_category_config Contains category configs. Here you can override properties defined per default in a category linked with a certain category context
tl_category_property_cache Contains the resolved overridable property values



Technical instructions

Guide: News categories field