Introduce MenuLinkContent bundles

Created on 28 July 2014, almost 10 years ago
Updated 18 January 2023, over 1 year ago

Problem/Motivation

  • Back when MenuLink was an entity type, #1966298: Introduce menu link bundles per menus β†’ introduced bundles for it, where the bundle is the menu that the link is in (just like taxonomy terms have a bundle corresponding to the vocabulary they're in). This was to allow different link translation settings per menu.
  • #2301317: MenuLinkNG part4: Conversion β†’ changed MenuLink from an entity type to a plugin type, and plugins have no concept of bundles. It added a new entity type, MenuLinkContent, specifically for custom menu links, but made them have just a single bundle, not bundle = menu.
  • MenuLinkContent is now a fieldable entity type (by default although there is no interface for it), whereas the old MenuLink wasn't. Meanwhile, a link can be moved from one menu to another, and core's Field API does not have support for changing the bundle of a fieldable entity. This makes difficult to have the menu that is holding a menu item as a bundle for the entity.

This the history so far until Drupal 8.0.0 and the menu system did not add much big features. This is the situation as of Drupal 8.7.x

  • The only bundleable menu item is the content entity and it should live with other non-bundleable menu items.
  • Making the bundle the menu a item lives in introduces the problem of content entities changing bundle which introduces a lot of complexity
  • menu link content is a mono bundle entity but not like user. It has its own mechanism to force the bundle (because of the past).

Proposed resolution

Add the ability to add fields and view modes to the MenuLinkContent entity and then study the use cases that need different bundles for that entity.

✨ Feature request
Status

Closed: won't fix

Version

8.8 ⚰️

Component
Menu systemΒ  β†’

Last updated 4 days ago

Created by

πŸ‡ΊπŸ‡ΈUnited States effulgentsia

Live updates comments and jobs are added and updated live.
  • D8MI

    (Drupal 8 Multilingual Initiative) is the tag used by the multilingual initiative to mark core issues (and some contributed module issues). For versions other than Drupal 8, use the i18n (Internationalization) tag on issues which involve or affect multilingual / multinational support. That is preferred over Translation.

Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

No activities found.

Production build 0.69.0 2024