Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Menu Link (Field)

545 sites Security covered
View on drupal.org

This module allows any entity to have a menu link field, making menu links manageable through Drupal's Field API. This integration provides benefits like enhanced views, customizable widgets, revision support, and granular permission control for menu links.

Defines a menu link field type.

Drupal's core Menu module allows nodes to place menu links (linking to the node) into the menu. The Menu Link (Field) module however allows entities of any type to place menu links into the menu using a field.

Menu link as a field

Menu links as fields gives you the following benefits.

  • Field API. Menu links will be automatically available to modules that interact with the Field API (like the Views module).
  • Widgets and formatters. Use separate widgets and formatters per entity type (and bundle). Contrib modules can provide all kinds of new widgets and formatters.
  • Revision support. Menu links' properties are stored per revision (among which their location in the menu).
  • Permission control. Menu links on nodes can be added by users that don't have access to administer full menus. Permission for menu links on nodes can even be restricted per role with modules like the Field permissions module.

Menu module integration

The Menu Link (Field) module integrates seamlessly into the Menu module. The UI for node types, to configure which menus are available, isn't altered.

The "Menu settings" tab is however removed from the node form and replaced by an field widget (To put the widget into a vertical tab use the Field group module).

Now that menu links are stored as a field it is thus possible to use different widgets per node type.

Developers

Relations between menu links and entities

The Menu Link (Field) module provides one predefined field stored in a fixed database table (using field_sql_storage) named {field_data_menu_link}. Using a fixed table allows other modules to use this table to retrieve and build upon relations between menu links and entities (This field is also being used for the integration with the Menu module).

Menu API additions

To speed up saving/deleting of menu links, the Menu link provides a couple of additions to the Menu API. Those may be used by other modules.

  • menu_link_load_multiple(array $mlids, array $conditions = array())
  • menu_link_delete_multiple(array $mlids)

Plans

  • Provide an generic parent menu link selector element. Using jQuery we could improve usability. Other modules should be able to hook into it and for example restrict the available parents.

Contributors

The initial module is provided by casey.

Activity

Total releases
2
First release
Jul 2025
Latest release
11 months ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Slowing

Releases

Version Type Release date
2.0.7 Stable Jul 25, 2025
2.0.6 Stable Jul 25, 2025