Drupal module Hierarchical Select is a handy "must-have" module for sites that are heavily based on category terms and their childes. I have been using this module for some previous projects in combination with another, yet more simple module - Simple hierarchical select.

Though there are times second module suits more than first - I still prefer first over second.

About Hierarchical Select

This module defines the "hierarchical_select" form element, which is a greatly enhanced way for letting the user select items in a hierarchy.

Hierarchical Select has the ability to save the entire lineage of a selection or only the "deepest" selection. You can configure it to force the user to make a selection as deep as possible in the tree, or allow the user to select an item anywhere in the tree. Levels can be labeled, you can configure limit the number of items that can be selected, configure a title for the dropbox, choose a site-wide animation delay, and so on. You can even create new items and levels through Hierarchical Select!

For a good overview of what Hierarchical Select can do, look at this demo!

Download Hierarchical Select module

To make it work, here is a simple tutorial, to get you started:

At first download, extract and enable Hierarchical Select module

Hierarchical Select module

Now to make it working, you will need to have taxonomies module enabled and some taxonomy terms added 

Drupal list term page

Now to make it work on new nodes (content types), you must add new field to your content type (or modify existing)

Term Reference Field

Give it a name: Category, field type: Term reference, Widget: Hierarchical Select, press save button

Now under widget type settings you have some customization options, for example, you can choose either to save term lineage or to save only deepest term (good for subcategories).

Hierarchical select widget configuration

As well you can allow for users to create a new terms or not

Hierarchical Select new terms

Final result should look like this (when creating a new node)

Hierarchical Select on node 

Another great feature of Hierarchical select you can use it your views as well. Done right - this is a small but yet powerful tool in hands of drupaller.

If you have any questions regarding of this module, you can submit an issue on it's project page, or drop me a comment

Last, but not least - currently I'm working on  a project which involves Hierarchical Select module pretty heavily, so I guess I will return to this module in some another blog post as well.

There are few patches already waiting to be applied for this module, and then there is a problem (in general not related with this module) how to display taxonomy terms on multi language site, where English language is not default and all terms mus be entered in language not known for me. In other words saying - Searching for solution to use other language as default language for end-users, while keeping English language for taxonomy term names. I know, the last paragraph sounds strange :)