diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php index 71917b6..bc07b63 100644 --- a/core/lib/Drupal/Core/Entity/EntityManager.php +++ b/core/lib/Drupal/Core/Entity/EntityManager.php @@ -300,7 +300,8 @@ public function getAdminPath($entity_type, $bundle) { $entity_info = $this->getDefinition($entity_type); // Check for an entity type's admin base path. if ($entity_info->hasLinkTemplate('admin-form')) { - return $entity_info->getLinkTemplate('admin-form'); + $template = $entity_info->getLinkTemplate('admin-form'); + return str_replace('{' . $entity_info->getBundleEntityType() . '}', $bundle, $template); } return ''; diff --git a/core/modules/action/action.module b/core/modules/action/action.module index 2a599d9..0719d1c 100644 --- a/core/modules/action/action.module +++ b/core/modules/action/action.module @@ -66,5 +66,5 @@ function action_entity_info(&$entity_info) { ->setForm('edit', 'Drupal\action\ActionEditFormController') ->setForm('delete', 'Drupal\action\Form\ActionDeleteForm') ->setList('Drupal\action\ActionListController') - ->setLinkTemplate('edit-form', 'admin/config/system/actions/configure/{action}'); + ->setLinkTemplate('edit-form', '/admin/config/system/actions/configure/{action}'); } diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlockType.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlockType.php index 86ed8bc..a55ab3f 100644 --- a/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlockType.php +++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Entity/CustomBlockType.php @@ -36,7 +36,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/block/custom-blocks/manage/{custom_block_type}" + * "edit-form" = "/admin/structure/block/custom-blocks/manage/{custom_block_type}" * } * ) */ diff --git a/core/modules/block/lib/Drupal/block/Entity/Block.php b/core/modules/block/lib/Drupal/block/Entity/Block.php index 9f48941..213103e 100644 --- a/core/modules/block/lib/Drupal/block/Entity/Block.php +++ b/core/modules/block/lib/Drupal/block/Entity/Block.php @@ -36,7 +36,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/block/manage/{block}" + * "edit-form" = "/admin/structure/block/manage/{block}" * } * ) */ diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigQueryTest.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigQueryTest.php index e137f69..5cd1458 100644 --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigQueryTest.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigQueryTest.php @@ -27,7 +27,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/config_test/manage/{config_query_test}" + * "edit-form" = "/admin/structure/config_test/manage/{config_query_test}" * } * ) * diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php index 649f55f..ce82d25 100644 --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php @@ -33,7 +33,7 @@ * "status" = "status" * }, * links = { - * "edit-form" = "admin/structure/config_test/manage/{config_test}" + * "edit-form" = "/admin/structure/config_test/manage/{config_test}" * } * ) */ diff --git a/core/modules/config_translation/config_translation.module b/core/modules/config_translation/config_translation.module index 33a2ee7..8f2f948 100644 --- a/core/modules/config_translation/config_translation.module +++ b/core/modules/config_translation/config_translation.module @@ -119,10 +119,12 @@ function config_translation_config_translation_info(&$info) { continue; } + $edit_routes = $route_provider->getRoutesByPattern($entity_info->getLinkTemplate('edit-form'))->all(); + // Use the entity type as the plugin ID. $info[$entity_type] = array( 'class' => '\Drupal\config_translation\ConfigEntityMapper', - 'base_route_name' => $entity_info->getLinkTemplate('edit-form'), + 'base_route_name' => key($edit_routes), 'title' => '!label !entity_type', 'names' => array(), 'entity_type' => $entity_type, diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Category.php b/core/modules/contact/lib/Drupal/contact/Entity/Category.php index bb8b0e3..a2ba9f7 100644 --- a/core/modules/contact/lib/Drupal/contact/Entity/Category.php +++ b/core/modules/contact/lib/Drupal/contact/Entity/Category.php @@ -35,7 +35,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/contact/manage/{contact_category}" + * "edit-form" = "/admin/structure/contact/manage/{contact_category}" * } * ) */ diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Message.php b/core/modules/contact/lib/Drupal/contact/Entity/Message.php index f12bbf4..a9d0226 100644 --- a/core/modules/contact/lib/Drupal/contact/Entity/Message.php +++ b/core/modules/contact/lib/Drupal/contact/Entity/Message.php @@ -33,7 +33,7 @@ * "bundle" = "id" * }, * links = { - * "admin-form" = "contact.category_edit" + * "admin-form" = "/admin/structure/contact/manage/{contact_category}" * } * ) */ diff --git a/core/modules/content_translation/lib/Drupal/content_translation/Form/ContentTranslationDeleteForm.php b/core/modules/content_translation/lib/Drupal/content_translation/Form/ContentTranslationDeleteForm.php index 5d33cdf..0043a96 100644 --- a/core/modules/content_translation/lib/Drupal/content_translation/Form/ContentTranslationDeleteForm.php +++ b/core/modules/content_translation/lib/Drupal/content_translation/Form/ContentTranslationDeleteForm.php @@ -64,7 +64,7 @@ public function getQuestion() { */ public function getCancelRoute() { return array( - 'route_name' => $this->entity->entityInfo()->getLinkTemplate('drupal:content-translation-overview'), + 'route_name' => 'content_translation.translation_overview_' . $this->entity->entityType(), 'route_parameters' => array( $this->entity->entityType() => $this->entity->id(), ), diff --git a/core/modules/entity/lib/Drupal/entity/Entity/EntityFormMode.php b/core/modules/entity/lib/Drupal/entity/Entity/EntityFormMode.php index bde4740..53ad098 100644 --- a/core/modules/entity/lib/Drupal/entity/Entity/EntityFormMode.php +++ b/core/modules/entity/lib/Drupal/entity/Entity/EntityFormMode.php @@ -47,7 +47,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/display-modes/form/manage/{form_mode}" + * "edit-form" = "/admin/structure/display-modes/form/manage/{form_mode}" * } * ) */ diff --git a/core/modules/entity/lib/Drupal/entity/Entity/EntityViewMode.php b/core/modules/entity/lib/Drupal/entity/Entity/EntityViewMode.php index 3d8cc8a..38c8266 100644 --- a/core/modules/entity/lib/Drupal/entity/Entity/EntityViewMode.php +++ b/core/modules/entity/lib/Drupal/entity/Entity/EntityViewMode.php @@ -48,7 +48,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/display-modes/view/manage/{view_mode}" + * "edit-form" = "/admin/structure/display-modes/view/manage/{view_mode}" * } * ) */ diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Plugin/Derivative/FieldUiLocalTask.php b/core/modules/field_ui/lib/Drupal/field_ui/Plugin/Derivative/FieldUiLocalTask.php index 602acc2..504fa19 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Plugin/Derivative/FieldUiLocalTask.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Plugin/Derivative/FieldUiLocalTask.php @@ -176,19 +176,24 @@ public function getDerivativeDefinitions(array $base_plugin_definition) { public function alterLocalTasks(&$local_tasks) { foreach ($this->entityManager->getDefinitions() as $entity_type => $entity_info) { if ($entity_info->isFieldable() && $entity_info->hasLinkTemplate('admin-form')) { - $admin_form = $entity_info->getLinkTemplate('admin-form'); - $local_tasks["field_ui.fields:overview_$entity_type"]['base_route'] = $admin_form; - $local_tasks["field_ui.fields:form_display_overview_$entity_type"]['base_route'] = $admin_form; - $local_tasks["field_ui.fields:display_overview_$entity_type"]['base_route'] = $admin_form; - $local_tasks["field_ui.fields:field_form_display_default_$entity_type"]['base_route'] = $admin_form; - $local_tasks["field_ui.fields:field_display_default_$entity_type"]['base_route'] = $admin_form; - foreach (entity_get_form_modes($entity_type) as $form_mode => $form_mode_info) { - $local_tasks['field_ui.fields:field_form_display_' . $form_mode . '_' . $entity_type]['base_route'] = $admin_form; - } + $routes = $this->routeProvider->getRoutesByPattern($entity_info->getLinkTemplate('admin-form'))->all(); + // Pick the first route name. + if ($base_route = key($routes)) { - foreach (entity_get_view_modes($entity_type) as $view_mode => $form_mode_info) { - $local_tasks['field_ui.fields:field_display_' . $view_mode . '_' . $entity_type]['base_route'] = $admin_form; + $local_tasks["field_ui.fields:overview_$entity_type"]['base_route'] = $base_route; + $local_tasks["field_ui.fields:form_display_overview_$entity_type"]['base_route'] = $base_route; + $local_tasks["field_ui.fields:display_overview_$entity_type"]['base_route'] = $base_route; + $local_tasks["field_ui.fields:field_form_display_default_$entity_type"]['base_route'] = $base_route; + $local_tasks["field_ui.fields:field_display_default_$entity_type"]['base_route'] = $base_route; + + foreach (entity_get_form_modes($entity_type) as $form_mode => $form_mode_info) { + $local_tasks['field_ui.fields:field_form_display_' . $form_mode . '_' . $entity_type]['base_route'] = $base_route; + } + + foreach (entity_get_view_modes($entity_type) as $view_mode => $form_mode_info) { + $local_tasks['field_ui.fields:field_display_' . $view_mode . '_' . $entity_type]['base_route'] = $base_route; + } } } } diff --git a/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php b/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php index ed575d1..7462b8c 100644 --- a/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php +++ b/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php @@ -37,7 +37,7 @@ * "status" = "status" * }, * links = { - * "edit-form" = "admin/config/content/formats/manage/{filter_format}" + * "edit-form" = "/admin/config/content/formats/manage/{filter_format}" * } * ) */ diff --git a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php index d76f0af..20d079e 100644 --- a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php +++ b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php @@ -40,7 +40,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/config/media/image-styles/manage/{image_style}" + * "edit-form" = "/admin/config/media/image-styles/manage/{image_style}" * } * ) */ diff --git a/core/modules/language/lib/Drupal/language/Entity/Language.php b/core/modules/language/lib/Drupal/language/Entity/Language.php index bec6b8c..5e5f41a 100644 --- a/core/modules/language/lib/Drupal/language/Entity/Language.php +++ b/core/modules/language/lib/Drupal/language/Entity/Language.php @@ -37,7 +37,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/config/regional/language/edit/{language_entity}" + * "edit-form" = "/admin/config/regional/language/edit/{language_entity}" * } * ) */ diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module index 645768b..1965f2f 100644 --- a/core/modules/menu/menu.module +++ b/core/modules/menu/menu.module @@ -102,7 +102,7 @@ function menu_entity_info(&$entity_info) { ->setForm('edit', 'Drupal\menu\MenuFormController') ->setForm('delete', 'Drupal\menu\Form\MenuDeleteForm') ->setList('Drupal\menu\MenuListController') - ->setLinkTemplate('edit-form', 'admin/structure/menu/manage/{menu}'); + ->setLinkTemplate('edit-form', '/admin/structure/menu/manage/{menu}'); $entity_info['menu_link'] ->setForm('delete', 'Drupal\menu\Form\MenuLinkDeleteForm') diff --git a/core/modules/node/lib/Drupal/node/Entity/NodeType.php b/core/modules/node/lib/Drupal/node/Entity/NodeType.php index 89b926c..b1c7699 100644 --- a/core/modules/node/lib/Drupal/node/Entity/NodeType.php +++ b/core/modules/node/lib/Drupal/node/Entity/NodeType.php @@ -37,7 +37,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/types/manage/{node_type}" + * "edit-form" = "/admin/structure/types/manage/{node_type}" * } * ) */ diff --git a/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php b/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php index f0fe6da..bcffae3 100644 --- a/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php +++ b/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php @@ -35,7 +35,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/config/media/picturemapping/{picture_mapping}" + * "edit-form" = "/admin/config/media/picturemapping/{picture_mapping}" * } * ) */ diff --git a/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php b/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php index e412b1c..b228bcb 100644 --- a/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php +++ b/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php @@ -37,7 +37,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/config/user-interface/shortcut/manage/{shortcut_set}" + * "edit-form" = "/admin/config/user-interface/shortcut/manage/{shortcut_set}" * } * ) */ diff --git a/core/modules/system/lib/Drupal/system/Entity/DateFormat.php b/core/modules/system/lib/Drupal/system/Entity/DateFormat.php index 55b5c1c..9ae60b8 100644 --- a/core/modules/system/lib/Drupal/system/Entity/DateFormat.php +++ b/core/modules/system/lib/Drupal/system/Entity/DateFormat.php @@ -35,7 +35,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/config/regional/date-time/formats/manage/{date_format}" + * "edit-form" = "/admin/config/regional/date-time/formats/manage/{date_format}" * } * ) */ diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Vocabulary.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Vocabulary.php index 62b2ed6..856958c 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Vocabulary.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Vocabulary.php @@ -36,7 +36,7 @@ * "uuid" = "uuid" * }, * links = { - * "edit-form" = "admin/structure/taxonomy/manage/{taxonomy_vocabulary}" + * "edit-form" = "/admin/structure/taxonomy/manage/{taxonomy_vocabulary}" * } * ) */ diff --git a/core/modules/user/lib/Drupal/user/Entity/Role.php b/core/modules/user/lib/Drupal/user/Entity/Role.php index db43616..19f9e59 100644 --- a/core/modules/user/lib/Drupal/user/Entity/Role.php +++ b/core/modules/user/lib/Drupal/user/Entity/Role.php @@ -36,7 +36,7 @@ * "label" = "label" * }, * links = { - * "edit-form" = "admin/people/roles/manage/{user_role}" + * "edit-form" = "/admin/people/roles/manage/{user_role}" * } * ) */ diff --git a/core/modules/views/lib/Drupal/views/Entity/View.php b/core/modules/views/lib/Drupal/views/Entity/View.php index 6866e3f..0560abb 100644 --- a/core/modules/views/lib/Drupal/views/Entity/View.php +++ b/core/modules/views/lib/Drupal/views/Entity/View.php @@ -34,7 +34,7 @@ * "status" = "status" * }, * links = { - * "edit-form" = "admin/structure/views/view/{view}" + * "edit-form" = "/admin/structure/views/view/{view}" * } * ) */