The {menu_node} table

Manages relationships between node ids and menu items.

The Menu Node API project fills in one of the "missing tables" in Drupal. This module does nothing on its own. Instead, it creates and maintains a {menu_node} table. This table maps the relationship between a node and its menu item (if any).

The module requires the optional core Menu module to be enabled. It also requires Drupal 6.10 or higher. (See this issue for why).

By itself, this module has no end-user functionality. When nodes are assigned to a site menu, records are created to capture that relationship. If the node or menu item is deleted, the record is likewise deleted.

This process enables other modules (such as Views) to write JOINs against node items in the menu system.

Drupal 7 version

Patch #457450 made it into Drupal 7. The Drupal 7 version of this module can be radically simplified, thanks to the new hooks. See the upgrade documentation for details.

This module will still be necessary in Drupal 7, however, since it tracks the nodes stored in the {menu_links} table.

For Drupal 7, you might also investigate the following modules, which provide similar functionality:

Contributed modules

  • Menu Node Edit: Allows node editing access based on menu relationships. This module is for Drupal 6 only.
  • Menu Node Views: Enables node views based on menu relationships.


The module was developed by

Project information