Makes tree menus from selected branches of Drupal's taxonomy.

On installation, the module offers new admin pages to grow treemenus from Taxonomy vocabularies and terms ('branches').

The resulting menus are full Drupal menus, not custom widgets. The menus, via coding trickery, can be placed on pages, in blocks, and can use DHTML.

The menu data has some presentational, relationship, and sort, options available.

The module must render lists of nodes which are children to terms. To do this, it can use Views (somewhat rudimentary implementation at present), or its own more limited internal functions.

Some background

Taxonomy Treemenu was started when a hack of Taxonomy Menu I was using failed, as that module took a very new direction. This happened near the end of Drupal 5.

The target was always to answer the plea 'I want a menu from a Taxonomy!'. The initial versions were intended as proof-of-concept. However, they worked, and I kept going, hoping the module would find a direction. Instead, the module gained a sometimes intrigued audience.

For the main coder on this project, Taxonomy Treemenu is still regarded as proof-of-concept. Yet it has always worked. We hope as time goes on the module may start to work for wider audiences and in more generalised situations.

The MVC of Taxonomy Treemenu

Taxonomy Treemenu gathers it's basic information from the Taxonomy. The module hooks in, so unlike Drupal's main menu system, the information is often updated on the fly.

Minimal information is stored discretely. The bundles of Taxonomy information are inserted straight into the menu links table. The structures created there could be regarded as a derived secondary model from which the module works.

The menus, also, are controlled by functions which run automatically.

All Taxonomy menus which can properly react to the paging and Taxonomy changes must have some idea of Taxonomy structure (it is not enough to be derived from it). Treemenu carries it's data through the URL. This is a very different approach to Taxonomy Menu, which effectively carries the structure in the links. This is not to offer any comment on either module, they are simply different.

Initially, we allowed Drupal's menu functions to handle the rendering. While this worked, the results were a bit stiff, like a secondary menu, not a navigation menu. For V3 we copied and hot-wired Drupal's menu rendering system to give us auto expanding menus. Prompted by several visitors to the issue queue, the renderer has begun to develop some seriously unusual and powerful options.

V5 abandoned the expanding menus, but retained the code (for future re-enabling?). The main aim here was to abandon the inherited Drupal organisation for something more in line with the data, and find a more user-friendly way through the options. There are good reasons why most modules in this area use custom widgets and/or back out of taxonomy handling...

State of Play

This is still regarded as proof-of-concept - yet it already works successfully for some people.

Weaknesses of the project
The basic approach means extensive coding covering several areas of Drupal (this is a big module).
Only one core coder means slow development, though proved continual.
Feature introduction has been patchy, often retrograde, and the module has several times been re-written to solve conceptual problems.
Options will always have complex interactions, and URL modification is necessary for extended features.

Strengths of the project
It just works. Without knowing a thing about menus or routing, without deep consideration, a user can create menus within minutes.
A comprehensive solution - menus in blocks, menus in pages, DHTML, they all work with each other.
Some of the base potential is strange and exciting, and the options and potential menu options can be spectacular.

The best and most complete documentation for the module can be found in the Advanced Help files which come with the module code. They can be found in the 'help' folder. You do not need Advanced Help module installed, but if you do, the help is delivered straight to the admin pages.

If you are sampling modules, to try and meet your needs, you might want to read, or even contribute to, our Comparision of menu handling modules (With relevance to Taxonomy) page.

And some thanks, right up front

These people should not be assumed responsible for this module in any way. They are people who contributed opinion and comment, while remaining thoughtful and considered,

jpTaranto - for how this module may work in the wider world of Drupal. His effect is still working.
Apollo610 - for persisting through a poor initial experience to fix several bugs.