Use custom CSS and the term template feature for awesome select widgets.
The widget in action
Dynamically limiting the number of selections by disabling remaining options

About this module

This module provides an expandable tree widget for the Taxonomy Term Reference field in Drupal 7. This widget is intended to serve as a replacement for Drupal's core Taxonomy Term Reference widget, which is a flat list of radio buttons or checkboxes and not necessarily fit for medium to large taxonomy trees.

This widget has the following features:

  • Expand/minimize buttons
  • Fully theme-able
  • Filter and sort available options with a view (if views is installed)
  • The ability to start with the tree either minimized or maximized
  • If you limit the number of selectable options, client-side javascript limits the number of terms that can be selected by disabling the other remaining options when the limit has been reached (this is enforced on the server side too).
  • For large trees, this widget now optionally keeps a list of selected items below the tree.
  • You can use tokens to alter the widget label (good for adding icons, turning the options into links, etc).

This module now comes with a display formatter with the following features:

  • Display taxonomy terms as a nested list by hierarchy.
  • Displayed terms can be altered with tokens or themed using a custom theme function.

Future features include:

  • Dynamic loading of the tree as it is expanded (for very large trees)

    Note: I don't have time to implement this at the moment. If someone is willing to volunteer to do this, I'd appreciate it.

How to use this module

  1. Enable the Term Reference Tree module.
  2. Go to the Manage Fields tab of any fieldable entity (such as a content type, taxonomy term, or user.
  3. Add a new field with a type of Term Reference.
  4. In the widget select box, select Term reference tree.

Note that you can also change any Term Reference field to use the Term Reference Tree widget, by editing that field and selecting Term Reference Tree on that field's Widget Type tab.

If you want to filter by a view, make sure the view includes the taxonomy term ID, and that the items per page is set to unlimited, as the widget will only display the items from the first page of results.

This module is also perfectly good for flat lists, particularly if you want to filter them by a view or limit the number of selectable options with JavaScript. I recommend turning on the "leaves only" option in this case, as it will make it look nicer.

Project Information