Category Module: A Solution to Everything You Hate About Taxonomies and Books

I’ve been watching the category module since January. Today, I’m ready to make a rather controversial assertion: this module has rendered both the taxonomy, and book modules obsolete.

It goes without saying that when making a serious decision, such as going to war, or declaring the taxonomy module obsolete, one better have a reason. Here are just a few of my reasons:

  1. It converts the book module’s flacid, pseudo menu into something useful: a real menu. In other words, it enables you to create a global navigation scheme (menu trees, and breadcrumbs) that will expand in response to whatever node your users are currently viewing. Before, books were invalid mini-sites that were seperated from the great context of the menu tree. They were a bad solution that one had to make, because there wasn't an alternative. Let us join hands, and celebrate the passing of that dark age.
  2. The category module not only gives you the option of automatically generating a menu item for every node that you file under a certain category… it gives you the option to create an pseudo menu item – so you avoid cluttering your menu, but have the benefits of context in terms of breadcrumbs and menu trees. Some "experts" say that its important for your navigation to a) show the user where they are, b) show them where they can go, c) show them where they've been. It was very sad that this simple goal was so hard to achieve in the past. Well, it is no longer, thanks to the category module.
  3. Every “category”, and every “container” are nodes. And wait, this should be explained:Foreach (TAXONOMY) { category = term, container = vocabulary }Foreach (BOOK) { category = child, container = parent} Every container, and category have an RSS feed. And since they are nodes, they can be themed like any other node. This = presentational freedom that both taxonomy and book sorely lacked.
  4. Pathauto now has native category module support. In otherwords, I dare you to see what happens if you set every node’s default path to [menupath]/[title], and every category and container to [menupath]. What you will find is SEO, and URL heaven – never again will you need to scheme of ways to make URLs, breadcrumbs, and menus all agree.
  5. We all know that the views module allows you to differentiate between taxonomy, and node types (just nod along like you knew that…). In contrast, the category module has full fledge views support. I’ll say it again: you can extend the category module’s organizational freedom, with the universe of presentational, and conditional options of the views module. That makes me a very happy person.
  6. In general, the new concepts put forward by the category module offer superior freedom in terms of the way content relates, is displayed, is navigated, and can be consumed. For the first time, you can build a comprehensive organized sitemap, using the sitemenu module. Oh – and did I mention, it has a bulk editor that makes complete reorganizations of a site’s structure take LITERALLY 1/40th of the time they would take with book, or taxonomy modules. F@ck yeah!
  7. I will never have to explain what a taxonomy is again. I will never have to show someone the difference between vocabularies and terms. Even better, never again will I have to hypnotize some poor bloke into believing that the seperation between taxonomy/menus/book hierarchies is a sensible thing. Though, its worth noting that I've become a good hypnotist.

So, to conclude and review, this module kicks ass.

Now for the fine print:

1. ON EXISTING SITES, DO NOT DO ANYTHING WITH THIS MODULE UNTIL YOU BACKUP YOUR DATABASE, AND CAN EASILY REVERT CHANGES. Technically this is always true with any module. Well, if you're trying to convert a years worth of taxonomy and books, I suggest you understand that you're going to screw it up the first time around.

2. (Update: this module does not break the book and taxonomy modules. Just remember: don't convert a vocabulary that another module depends on. [my mistake!])