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!
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 :)