PHPackages                             heimrichhannot/contao-categories-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. heimrichhannot/contao-categories-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

heimrichhannot/contao-categories-bundle
=======================================

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

1.4.6(2y ago)56.6k↓50%1[1 issues](https://github.com/heimrichhannot/contao-categories-bundle/issues)[1 PRs](https://github.com/heimrichhannot/contao-categories-bundle/pulls)4LGPL-3.0-or-laterPHPPHP ^7.4||^8.0

Since Dec 6Pushed 3mo ago5 watchersCompare

[ Source](https://github.com/heimrichhannot/contao-categories-bundle)[ Packagist](https://packagist.org/packages/heimrichhannot/contao-categories-bundle)[ RSS](/packages/heimrichhannot-contao-categories-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (5)Versions (57)Used By (4)

Contao Categories Bundle
========================

[](#contao-categories-bundle)

[![](https://camo.githubusercontent.com/136df7eaa1e7d2aa731256be7d014849f82486ad6ae2ee0ebe7cc60362854f3f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6865696d7269636868616e6e6f742f636f6e74616f2d63617465676f726965732d62756e646c652e737667)](https://packagist.org/packages/heimrichhannot/contao-categories-bundle)[![](https://camo.githubusercontent.com/2a1f6c93aa27bfe581492982e1042d0e7f8d7acaaac39f1a9cb81a6eda875aa7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6865696d7269636868616e6e6f742f636f6e74616f2d63617465676f726965732d62756e646c652e737667)](https://packagist.org/packages/heimrichhannot/contao-categories-bundle)

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

Features
--------

[](#features)

- 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](https://github.com/heimrichhannot/contao-categories-multilingual-bundle)
- categories filter type for [Contao Filter Bundle](https://github.com/heimrichhannot/contao-filter-bundle)

Impressions
-----------

[](#impressions)

### Category management

[](#category-management)

[![alt preview](docs/categories.png)](docs/categories.png)

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

### Widget integration in your DCA

[](#widget-integration-in-your-dca)

[![alt preview](docs/fields.png)](docs/fields.png)

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

### Picker widgets

[](#picker-widgets)

[![alt preview](docs/radio-picker.png)](docs/radio-picker.png)

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

[![alt preview](docs/checkbox-picker.png)](docs/checkbox-picker.png)

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

Usage
-----

[](#usage)

### Install

[](#install)

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](docs/guide_news.md)

### Filter bundle integration

[](#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
----------------

[](#entity-structure)

[![alt entities](docs/entities.png)](docs/entities.png)

TableDescriptiontl\_categoryContains the *category* instancestl\_category\_associationAssociation table between tl\_category and your DCA's tabletl\_category\_contextDefines context keys (simple strings) usable in *category configs*tl\_category\_configContains *category configs*. Here you can override properties defined per default in a category linked with a certain *category context*tl\_category\_property\_cacheContains the resolved overridable property valuesDocumentation
-------------

[](#documentation)

[Concepts](docs/concepts.md)

[Technical instructions](docs/technical_intructions.md)

[Guide: News categories field](docs/guide_news.md)

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance51

Moderate activity, may be stable

Popularity28

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 85.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Recently: every ~60 days

Total

53

Last Release

1049d ago

PHP version history (4 changes)1.0.0-betaPHP &gt;=7.0.0

1.0.0-beta24PHP ^7.0

1.2.0PHP ^7.0||^8.0

1.4.0PHP ^7.4||^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/28ad3224d8727b622ebd229840eea6b9dbcb83eb0bd609e6ce65b614830ff538?d=identicon)[digitales@heimrich-hannot.de](/maintainers/digitales@heimrich-hannot.de)

---

Top Contributors

[![koertho](https://avatars.githubusercontent.com/u/12064642?v=4)](https://github.com/koertho "koertho (29 commits)")[![Defcon0](https://avatars.githubusercontent.com/u/1485098?v=4)](https://github.com/Defcon0 "Defcon0 (3 commits)")[![salteax](https://avatars.githubusercontent.com/u/46114448?v=4)](https://github.com/salteax "salteax (1 commits)")[![vvohh](https://avatars.githubusercontent.com/u/75325799?v=4)](https://github.com/vvohh "vvohh (1 commits)")

### Embed Badge

![Health badge](/badges/heimrichhannot-contao-categories-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/heimrichhannot-contao-categories-bundle/health.svg)](https://phpackages.com/packages/heimrichhannot-contao-categories-bundle)
```

###  Alternatives

[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[madeyourday/contao-rocksolid-custom-elements

Create your own, nestable content elements using a modular system. End the WYSIWYG chaos with your own content elements.

50341.9k12](/packages/madeyourday-contao-rocksolid-custom-elements)[codefog/contao-news_categories

News Categories bundle for Contao Open Source CMS

3183.3k6](/packages/codefog-contao-news-categories)[terminal42/contao-folderpage

Provides a new page type for Contao that allows you to group pages into folders.

18147.9k9](/packages/terminal42-contao-folderpage)[inspiredminds/contao-glightbox

Contao extension to integrate GLightbox.

1223.3k1](/packages/inspiredminds-contao-glightbox)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
