You are here

function menu_item_extras_entity_type_build in Menu Item Extras 8.2

Implements hook_entity_type_build().

File

./menu_item_extras.module, line 46
Manage fields for the menu items.

Code

function menu_item_extras_entity_type_build(array &$entity_types) {
  if (\Drupal::service('config.factory')
    ->get('menu_item_extras.utility')
    ->get('entity_type_build_status')) {
    $content_entity = 'menu_link_content';

    // Set entity type to be bundled.

    /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $mlc */
    $mlc = $entity_types[$content_entity];
    $mlc
      ->setClass(MenuItemExtrasMenuLinkContent::class);

    // Set handler for views.
    $mlc
      ->setHandlerClass('views_data', 'Drupal\\menu_item_extras\\MenuLinkContentViewsData');
    $mlc
      ->set('bundle_entity_type', 'menu');
    $mlc
      ->set('field_ui_base_route', 'entity.menu.edit_form');

    // Set entity to be a bundle entity type for previous entity.

    /** @var \Drupal\Core\Config\Entity\ConfigEntityTypeInterface $menu */
    $menu = $entity_types['menu'];
    $menu
      ->set('bundle_of', $content_entity);
    $entity_types['menu']
      ->setFormClass('clear', 'Drupal\\menu_item_extras\\Form\\ConfirmClearMenuForm')
      ->setLinkTemplate('clear', '/admin/structure/menu/manage/{menu}');
    $entity_types['menu']
      ->setFormClass('view_modes_settings', 'Drupal\\menu_item_extras\\MenuItemExtrasViewModesSettingsForm')
      ->setLinkTemplate('view-modes-settings', '/admin/structure/menu/manage/{menu}/view_modes_settings');
  }
}