For the present, this page will be linked into the documentation for Taxonomy Treemenu. I suppose that if the information here became in some way extensive and/or comprehensive we would move it to the 'comparisons' section. For now, it will remain here.

The page is not for the promotion of the Taxonomy Treemenu module. If you arrive at Taxonomy Treemenu, then we assume you want to provide a menu from the Taxonomy. This page is to help you reach a solution.

Frankly, this is a wild area of Drupal.

Background to taxonomy on websites

The Taxonomy module offers an ability to categorize content. I have been told, and read, that this a very special ability of Drupal. I am in no position to assess these claims as researched fact. However, for certain, a web page builder such as Dreamweaver could not offer much. A deeper page-building program, which I tend to categorise as a Content Management System, could offer such facilities, but they would be limited to the presentation of the CMS. For example, a designer told me that Wordpress offers categorisation and categorisation presentation, out of the box. But then, he added, Wordpress is limited in other ways, for example, to blogs.

Which leaves the provision of taxonomy to the next level of web-site design programs, which I prefer to call 'Web Application Frameworks'. These frameworks may or may not provide a nice user interface, but they attempt to put the basic provision (of the many technologies) of a website in one folder, with code to help the user get on with the job, rather than repetitively rewriting the same code for forms/database access, etc.

It seems a little exaggerated to say that Drupal's Taxonomy is unique, then. Most Web Application Frameworks, as I am conceiving them here, will have a layer to access database structure, and thus have taxonomy handling. Ruby on Rails, which I have used, has an object oriented layer to access databases. Thus it has taxonomy handling, except not as an explicit module. What may be fair to say is that Drupal's Taxonomy module may be unique in that it offers abstracted categorisation straight into a admin/user view.

Wikipedia on Content Management Systems
http://en.wikipedia.org/wiki/Web_content_management_system

Wikipedia on Web application Frameworks
http://en.wikipedia.org/wiki/Web_application_framework

Taxonomy in Drupal

The Taxonomy in Drupal is mainly offered as a feature for internal admin. And I think this is fair enough. It enables site designers, without going near a scrap of code, to build sites with categorised content. The two most obvious examples are sites with book structure (such as the Drupal Handbook, on which you are reading this page) or shopping sites, with categorisation of the objects on sale.

Many people though, in trying to resolve website solutions, wish they could present abstract aspects of Drupal's Taxonomy. For example, 'can we just give the user a menu?' Drupal core is curiously undeveloped in this way. But I suspect (suspect, note, not know) that there are reasons for this. First, if the Taxonomy is as innovative as Drupalers believe, then the suggestion is somewhat innovative - it's not a solution that could be targeted as 'expected' or 'necessary'. Second, the Drupal core is open source. This means it is not as consistent as you may expect - the code is of a consistently high level, but the features develop as initially weird add-ons which become embraced by peer review. Developing a consistent system of presentation is tough going conceptually, as well as tough on coding. A promoter would have to devise a system to match the openness of the node/region/block paradigm, for example, and I'm sure that was a long conceptual battle.

In short, viewing the internal Taxonomy of Drupal is a business for contributed modules, and is unlikely to reach core for a long time.

List vs tree menus

At Taxonomy Treemenu we have to keep stressing this contrast, as it marks out one of our differences. We use this terminology.

The original web menus were a list of links.

A list menu is a list with links. But it differs from the original web menus in the new content delivery and styling possibilities. The development of CMS/web frameworks, means these lists can be much more dynamic, offering content reacting to user navigation, or templated for coding efficiency. The increased compatibility of CSS in browsers, and the new Javascript libraries (which have come on considerably since about 2006), offer more than just a simple look. List menus can work as 'accordians' and can be styled appropriately for the site itself.

Well designed and good looking sites are nowadays expected to use good 2D menus for navigation, even if they are very discreet (Wikipedia for example).

Tree menus include aspects of a tree in the menu. They are a tree of lists. Those drop down menus you see in applications are a simple sort of tree menu, For example, the 'file' menu in so many applications. Drupal's 'navigation' menu is also a tree menu.

Tree menus take up space. They can contain far less information than a list menu, otherwise a user looses track of the tree structure itself. On the web they need some advanced technology - they always work better with Javascript, to avoid lots of page refreshes. They require complex content delivery. So they were positively discouraged in early web design.

But tree menus have one killer feature - when a user navigates list menus, they must remember where they are going. I's a talent of web literacy. But with a tree menu, the content structure can be seen visually. And this is particularly useful when you have categorized content. Which is no doubt why huge menus, such as Drupal's 'navigation' menu, or Microsoft's developer information sites, put in the effort needed to create treemenu navigation.

How can I view the Taxonomy? Module Comparison

NOTE: The Menu Block main page also has a list of modules and related modules (though the modules they list seem to be modules that show off their own work to advantage!)

Taxonomy VTN
Makes an index out of the Taxonomy. What do they mean by that? An index as in a book, a listing of taxonomy on a page. You can look at examples on the module's home site. Another way of looking at this is to say it is an incredibly stylish, slightly academic looking sitemap. But that might be to undersell the achievement.

Has lots of options, and is mature. For example, it can properly organise by locale - which I've never seen before (categorizing non-Latin alphabets, for example).

What will it not do? Only one block. And, when I tested, that only showed vocabularies. The site says it can display terms in blocks, so perhaps I was missing something (though the interface is well laid out, so that seems unlikely?). In other words, this rather wonderful and literate module achieves it's ends by bypassing the the thorny question of addressing and re-addressing blocks to pages. And you are rather stuck with the stock rendering, though I'm sure a lot can be done with the resulting pages.

If you need a sitemap which is really useful for your users, properly categorized and dynamic, you should try this.

Views
Views produces lists from internal tables. It is well described by it's authors as a 'structured query builder' (if you know SQL, you know what they mean).

Views lists can be structured to include links. Therefore, Views is capable of producing list menus. But not tree menus.

Views, in terms of configuration, is the power, You can extract huge amounts of information to present in the lists. You have a selection of ways of structuring and styling the lists

However, Views shadows core in that it provides very few built in options for handling the Taxonomy. At the turn of 2009, it gained the ability to display child terms of a term, and that's about it.

Menu Block
Turfs out menus from the existing menu structure, and displayed them in blocks.

Has a great set of options, the main one of which is to start and end your menu at chosen depths. So you can make a menu from a snippet of the main menu. You also have some options to 'chase' the menu round, depending on the current page.

A mature module which has been round since at least the late days of Drupal 5? Now has some commercial support, apparently.

It doesn't actually provide menu building from the taxonomy. However, if you use another module to build a taxonomy menu, for example, Taxonomy Menu, you may be able to get Menu Block to run over the top. Not tested (will not work with Taxonomy Treemenu, at present, though not out of the question).

Vocabulary Index
Makes indexes out of the Taxonomy.

I installed into an almost clean site, and got nothing back but warning message that I was not updated to the Version 2 database. SQL queries proved that the module was installed roughly according to the schema. This sort of behavior is very upsetting for a user. But then, it is reasonably promising in generality - far better a warning message than a crash.

So what I have to say is speculation, and gleaned from the documentation.

The module claims to make indexes out of taxonomy vocabularies. This is modest, as it will make tree structures, so deserves to be called a menu modifier, at very least. Moreover it will do that rare feat of paging AND block placement. Beyond that, it has some features for changing language coding, and offers three different views, a 'browsable' (presumably sort of expanding) view, a 'tree' view, and an 'alphabetical' (sorted alphabetically) view. All straightforward and useful features.

The overall approach impresses as a thoroughly modern piece of Drupal coding. I suspect the coder is close to Drupal development itself, in some way. Though I couldn't get it to work. I assume the install problems are temporary or local.

Vocabulary Index seems to work, not by building links, but by hooking them and building into cache. This approach is distinct from Taxonomy Menu and the hybrid Taxonomy Treemenu. The coders talk about the compatible modules, but this approach leans towards end rendering, and would probably clash with other similar modules. That said, you're probably asking for trouble by running one or more of these kinds of modules at once.

Very wired and pretty, if the well-thought-out end results meet your needs, or you think you can add css to reach your results, then this module should be strongly considered.

Taxonomy Menu
Makes menus out of the Taxonomy.

The original? Has been around for ages, anyway.

Since the early days of Drupal 6, Taxonomy Menu takes a very unusual and code efficient route for menu generation. It builds the taxonomy information into the links_router table. Since Drupal uses this table for basic link generation, Taxonomy Menu gets it's link building and admin for free. There is an objection to this, though - if your taxonomy is exceptionally large then the generated menus items will clog the links_router table. I have no idea if anyone has run into this as an issue.

By tradition, Taxonomy Menu does not offer much by way of flexibility. You might be able to get other modules to run on top of the results though, for example, Menu Block.

The long running development of this module has it's advantages. There is a measure of Views and PathAuto integration, hooks for recording link paths, and some options for how the base menu works.

Site Menu

Taxonomy Block
Untested, but what it claims to provide is obvious, and if that is your need, have a look.

Taxo Faceted Navigation
Faceted search with clean url's.
Menu blocks are produced based on taxonomies, one block per taxonomy.
Taxonomy terms are used as Facets that will help users to filter content progressively. Similar to what the Faceted Search module does and similar to most eCommerce sites, like Amazon. However this module is all about SEO, so unlike the Faceted Search module this module maintains clean URL's with each filter change. For example, if user applies the filters: Computer Monitors, Samsung, LCD, then the URL will look something like: http://sitename.com/products/computer-monitors/samsung/lcd
.

Filters can be applied in various permutations, so producing clean URL for each unique filter combination will allow search engines to index a huge amount of landing pages.

Comments

olegvo’s picture