diff --git a/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php b/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php index 306cc07..c0d9267 100644 --- a/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php +++ b/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php @@ -13,6 +13,7 @@ use Drupal\Core\TypedData\DataDefinition; use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\Core\TypedData\TypedDataInterface; +use Drupal\system\Entity\Menu; /** * Defines a menu link field type which stores the link, parent and menu. @@ -67,7 +68,8 @@ public static function defaultFieldSettings() { public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $form = parent::fieldSettingsForm($form, $form_state); - $menu_options = menu_ui_get_menus(); + $menu_options = $this->getMenuNames(); + $form['available_menus'] = [ '#type' => 'checkboxes', '#title' => $this->t('Available menus'), @@ -220,4 +222,20 @@ protected function getMenuPluginDefinition() { return $menu_definition; } + /** + * Returns available menu names. + * + * @return string[] + * Returns menu labels, keyed by menu ID. + */ + protected function getMenuNames() { + if ($custom_menus = Menu::loadMultiple()) { + foreach ($custom_menus as $menu_name => $menu) { + $custom_menus[$menu_name] = $menu->label(); + } + asort($custom_menus); + } + + return $custom_menus; + } } diff --git a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php index ecf6a28..fcd677f 100644 --- a/core/modules/system/src/Tests/Menu/BreadcrumbTest.php +++ b/core/modules/system/src/Tests/Menu/BreadcrumbTest.php @@ -211,10 +211,10 @@ function testBreadCrumbs() { ); $trail = $home + $expected; $tree = $expected + array( - 'node/' . $parent->id() => $parent->menu['title'], + 'node/' . $parent->id() => $parent->menu->title, ); $trail += array( - 'node/' . $parent->id() => $parent->menu['title'], + 'node/' . $parent->id() => $parent->menu->title, ); // Add a taxonomy term/tag to last node, and add a link for that term to the