Background Principles
This module must range over large areas of Drupal to achieve it's end.
Also, abstract menus have a theoretical background. They are more puzzling than at first apparent.
If you ask the question, "Why can't I build a menu from the Taxonomy?" then you need to try...
However, we have some clear ends,
Links are links
Taxonomy treemenu is about providing a tree structured menu.
If you are hoping for a moudule like Views, which can put nearly any site information into a list row,
and features such as visible filters,
this module will not, and never will provide such features.
We have two reasons for this.
-
Views is big module, and demands a lot of memory and some processing power.
To add tree structuring to the lists would overload small computers and client browsers.
-
With current browser rendering, too much information would overwhelm the visibility of the tree structure.
So we stick to a straight anchor links, and what can be reasonably contained within them.
help is not someting nice you add afterwards
No help is unfinished work. Same as if you wrote the help but hadn't written the code.
There are also some background aims
Try and follow the Drupal method of providing abstract generalized frameworks.
Ocassionally this clashes with Drupal's own implementations.
For example, Drupal makes no provision for menus on pages,
but we treat a menu as an object you can put on a page or in a block, regardless.
Find the best method for our ends
This is very evident in the interface.
The module Taxonomy Menu uses a clever trick (building a base menu into the router),
which allows the module to use the Drupal menu interfaces seamlessly.
We have different ends, so we use as much of the interface as we can,
but, in use, you will see warning messages and various disabled items.
In code you will find some functions where we walk round Drupal code.
For example, our term pages walk round Drupal's term rendering code,
so we can list the terms in the same order as the menu.
...but use Drupal where we can, and don't drift
We're not going to rewrite the book. Besides, that is harder to maintain.
Sketch out functionality
A (sometimes contentious) principle of Drupal is never to keep backwards compatibility
at the expense of making better code.
We do something similar, in that we have decided to test out code as we go.
This can lead to dysfunctional code, and a broken user experience.
But it keeps development moving, and we have a stock of useful code.