According to the issue #34755 the menu system was reformulated for 6.x
These are some features, that (if still not addressed) can make the menu system much more configurable.

The menu system:

  1. Should allow the identification of any page on it's structure. With this we can make hierarchies that a page can process for "sections" and "sub-sections" display. (eg. this is similar to how a book-page displays the book block menu)
  2. The menu should allow "virtual menus", that after being processed will generate a fully menu. (eg. We can add a "taxonomy/vocab/(X) that will be processed to add all terms from "vocab X" in the menu)
  3. A specific page (being inside the menu system) allows the system to generate both parent and child menus. (eg. show the primary links, but also the secondary menus that are under the specific "page")
  4. The breadcrumb should be directly connected to the menu system. With the menu allowing dynamic values, it is possible to create fully aware breadcrumbs. (eg. Nowadays, if we have nodes under taxonomies we must install extra modules to have working breadcrumbs)
  5. This will allow to generate a fully hierarchical site map, with options like automatically expand and others
  6. Option to disable a menu "LOCAL TASKS", but still showing it (eg. when we have a page with several options, that should be disabled or not according to special conditions)

Comments

chx’s picture

Full menu generation -- good idea. Code it, make it so that if the _to_arg function returns an array then it will iterate them. I will not code it, though.

Breadcrumbs -- when they will be readded they will be as close to current as possible per Dries' request. later on, I would like to see breadcrumbs built from tokens of some form.

the others 1,3,6 need further explanation I think.

magico’s picture

Hi chx! Thanks for your response.

I made some code with fully menu generation in 4.6. Perhaps I should create a specific issue to develop my ideas, get your help and after studying your menu system I can code something.

Let's assume the following structure as an example:

  1. home
  2. company
    1. company
    2. location
  3. news
    1. news 1
    2. news 2
  4. products
    1. category 1
      1. product 1
      2. product 2
    2. category 2
  5. contact

1. When designing a site, the webdesigner can create a theme where he wants to show sections. For example, he wants that whenever a user is inside a particular "news", the page should show the section name "News" and the the specific news title ("news 1").

What he needs to accomplish this is, that the particular "node" is aware of it's position within the menu system, so he can calculates the parent menu. If the parent menu title is the same of the node we don't show the "particular title" (eg. company)

Resuming, he needs a function menu_get_parent(level) to calculate this.

3. See the products as examples. When we are in the home, we have the primary menu: home, company, products, news, contact.
When we click "products", it should generate the same primary menu but also the secondary menu: category 1, category 2
If we click "category 1" it will generate the original primary menu, but the secondary menu is "product 1" and "product 2"

6. "LOCAL TASKS" could be available as a special option of the menu system. There are times when we need to reorganize tabs, hide or just disable them.
By default, whenever a user does not have access to a specific tab it will be hidden. The idea here is to allow the visibility of the tab, but if the user does not have access to it (because he needs to do something first), it will be disabled.
Example: we have a form with a "product". That form has several tabs for different tasks. To access (and edit the content of one tab) the user should know that he must do something else first in another place.

dropcube’s picture

Version: 6.x-dev » 7.x-dev

Moving feature request to 7.x-dev

sun’s picture

Status: Active » Closed (won't fix)

The scope of this issue is too broad to achieve something. Most if not all of the listed points are already tackled in other issues - please use the search to find them.