Drupal is a registered trademark of Dries Buytaert
drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! linkit 7.0.15 Minor update available for module linkit (7.0.15). views_data_export 8.x-1.10 Minor update available for module views_data_export (8.x-1.10). linkit 7.0.14 Minor update available for module linkit (7.0.14). migrate_tools 6.1.4 Minor update available for module migrate_tools (6.1.4). diff 2.0.0 Major update available for module diff (2.0.0). masquerade 8.x-2.2 Minor update available for module masquerade (8.x-2.2). video_embed_field 3.1.0 Minor update available for module video_embed_field (3.1.0). bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7).

Menu Item Extras Bridge exposes the custom fields you add with Menu Item Extras to third-party menu rendering modules (such as TB Mega Menu), which would otherwise ignore them. It is pure data injection: no markup decoration, no admin UI.

Features

  • Generic renderer service (menu_item_extras_bridge.renderer): loads the menu_link_content entity for any menu link plugin id, resolves its configured view mode, and builds a render array of just its extra fields (base fields like title/link are excluded so the host menu still controls them).
  • Sub-module per menu renderer. Enable only the integration you need. mieb_tb_megamenu ships first; the architecture is designed so adding Superfish, We Mega Menu, etc. is a small new sub-module with zero changes to the core module.
  • Three Twig variables are added to the host template (for TB Mega Menu: tb-megamenu-item.html.twig):
    • extras — render array of every populated extra field, using the configured view mode.
    • extras_view_mode — the view mode machine name.
    • extras_raw — raw field values keyed by machine name, unwrapped to scalars where possible, for Twig conditionals.
  • Automatic cache invalidation. A config event subscriber re-renders the menu when you change the entity view display (label visibility, formatter, view modes) or add/remove a field — no manual cache clear.
  • Convention over configuration. Styling is done with the field-level classes Drupal already emits (e.g. .field--name-field-foo) and modern CSS :has() — the module never pollutes the host menu markup with its own classes.
  • Defensive by design. Every service method returns a safe empty value on failure and logs to the menu_item_extras_bridge channel, so a misconfigured field can never break menu rendering.

Use this module whenever you have built rich menu items with Menu Item Extras (images, descriptions, "featured" flags, embedded content) but your chosen mega-menu module renders its own template and drops those fields.

Post-Installation

  1. Enable the main module Menu Item Extras Bridge and the sub-module for your menu renderer (e.g. Menu Item Extras Bridge - TB MegaMenu).
  2. There is no configuration page. The bridge starts working immediately.
  3. Make sure your extra fields are set to display in the relevant view mode at /admin/structure/menu/manage/<menu>/display (Menu Item Extras' standard "Manage display").
  4. The fields render inside each menu item, wrapped in <div class="tbm-item-extras tbm-item-extras--<view_mode>">. Style them in your theme with the standard Drupal field classes, or override the shipped template in your theme the normal Drupal way.
  5. Optional: branch on extras_raw['field_x'] in a theme-level template override for conditional markup.

Additional Requirements

Beyond Drupal core, the main module requires Menu Item Extras. Each sub-module additionally requires its target menu module — for example mieb_tb_megamenu requires TB Mega Menu (3.x for Drupal 10/11). No external libraries.

None required. Any field-providing module (Image, Text, Entity Reference, etc.) used by Menu Item Extras is automatically supported because rendering goes through the standard field view pipeline.

Similar projects

Menu Item Extras itself renders extras through Drupal core's own menu template. The gap this module fills is that third-party renderers (TB Mega Menu, We Mega Menu, Superfish, etc.) bypass that template with their own rendering pipeline, so the extras never appear. Unlike copying and patching those contrib modules, this bridge uses only public extension points (preprocess hooks, theme registry alter, services) so it survives upgrades of both Menu Item Extras and the host menu module.

Supporting this Module

Issues and merge requests are welcome on the project issue queue.

Community Documentation

See the project README for the renderer service API and a step-by-step guide to writing a new sub-module integration.

Activity

Total releases
1
First release
May 2026
Latest release
7 hours ago
Release cadence
Stability
100% stable

Releases

Version Type Release date
1.0.0 Stable May 16, 2026