The Category module is an alternative to, and a combination of, the Taxonomy and Book modules in Drupal core. The key feature of this module is that vocabularies and terms are nodes. In Drupal core, you use taxonomy terms (and vocabularies) to classify your content categorically, and you use book nodes to structure your content hierarchically. In the Category module, you do both of these things using category (and container) nodes. In this module, a container is the node-ified version of a vocabulary, and a category is the node-ified version of a term. A container also acts as a top-level book page, and a category acts as a child book page. You can apply category or container behavior to any node type on your site.
Should I use Category?
The Category module is large and very complex. Installing it and migrating your existing data into it is no small task, and uninstalling it is extremely difficult, if not impossible. It is a more resource-intensive module than its alternatives, and it will slow down your site, particularly if you enable a lot of the included sub-modules. Additionally, there are some longstanding bugs in Category (particularly in the Drupal 5 version or before), especially when dealing with menu handling.
If you are considering using Category instead of the core Taxonomy module and/or core Book module, know this: Category does everything Taxonomy and Book do and more. However, it may slow down your site and/or result in errors.
Please research other options before deciding to go with Category, and only use it if you feel there really is nothing else that can achieve the outcome you seek. Always backup your site before installing the Category module!
Having got that disclaimer out of the way... you should use Category if you want to do any of these things:
- Organize static and dynamic content into a single hierarchy
- Add node-only functionality to your categories (e.g. commenting)
- Create a drill-down system (e.g. for countries and cities)
- Structure your site into hierarchies and sub-hierarchies
- Have menu items automatically created and updated for your pages
- Control the display of navigational elements on your pages
Drupal 6 status
Version 2 of the Category module is currently being developed, and it is compatible with Drupal 6 only. This version is a significant re-write of the module. Although it has more-or-less the same features as Category 1, there have been a lot of under-the-hood changes. The menu handling part of the module, in particular, has been re-written on top of the new Drupal 6 menu system. Category 2 also aims to offer greatly improved usability compared with Category 1, and it is already much more stable and bug-free than Category 1 ever was.
Category 2 is currently available as a beta release. The core modules are feature-complete, although there are still quite a few outstanding bugs; and many of the sub-modules still need to be ported to Drupal 6. What has been ported is reasonably stable, but there are no guarantees at this stage. For the latest updates on the status of the Drupal 6 version of Category, please check the Update Category to D6 thread in the issue tracker.
Drupal 5 status
Version 1 of the Category module is available for Drupal 5 (and 4.7). This version contains numerous long-standing bugs, many of which have never been completely resolved. The menu handling component of the module depends on the Drupal 5 (and earlier) menu system, which is not scalable for more than app. 2,000 custom menu items on a single site, and which is thus a serious performance problem for anyone using Category's automatic menu item creation feature.
This version is not being actively maintained, due to lack of interested volunteers: if you'd like to volunteer as the maintainer, then please get in touch.
More about Category
There are two important hierarchical structuring features that are not present in the Drupal core taxonomy and book modules, and that you can utilise in the category module:
- A taxonomy vocabulary (or a top-level book page) in Drupal core cannot have a parent. However, a container node in the category module can have another container, or a category from another container, as its parent. This means that you can organise your site's pages into hierarchies and sub-hierarchies. E.g. you can have a 'site map' container with each main page of your site as a category, and you can have a 'tags' container (with tag categories) beneath the 'blog' section of your site.
- A taxonomy term (or a child book page) in Drupal core cannot have a term from a different vocabulary (or a page from a different book) as its parent. However, a category node in the category module can have a category from a different container as its parent. This is a feature of the category module known as distant parents. Using distant parents, you can set up a drill-down hierarchy for things such as geographical regions. E.g. you can have a 'country' container with countries as its categories, and a 'city' container with cities as its categories, and each 'city' category can have a 'country' category as its parent, even though the two categories are in different containers.
The Category package consists of the core module, as well as numerous sub-modules, which include (among others):
- category_menu: auto-manages menu items to match the category structure.
- category_display: fine tunes display of many elements per-container, e.g. TOC, nav links.
- 'Wrapper modules': to allow full backwards-compatibility with the taxonomy and book modules (which this module is based upon), and thus with all other modules that depend on them.
- category_export (to be ported to D6): provides a printer-friendly version of a category and all its children.
- category_legacy (to be ported to D6): import / export from taxonomy / book.