diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php index 683ef53..38697a1 100644 --- a/core/lib/Drupal/Core/Entity/Entity.php +++ b/core/lib/Drupal/Core/Entity/Entity.php @@ -198,36 +198,38 @@ public function uri($rel = 'canonical') { return $uri; } + $bundle = $this->bundle(); + // A bundle-specific callback takes precedence over the generic one for + // the entity type. + $bundles = entity_get_bundles($this->entityType); + if (isset($bundles[$bundle]['uri_callback'])) { + $uri_callback = $bundles[$bundle]['uri_callback']; + } + elseif (isset($entity_info['uri_callback'])) { + $uri_callback = $entity_info['uri_callback']; + } + + // Invoke the callback to get the URI. If there is no callback, use the + // default URI format. + if (isset($uri_callback) && function_exists($uri_callback)) { + $uri = $uri_callback($this); + } // Only use these defaults for a canonical link (that is, a link to self). // Other relationship types are not supported by this logic. - if ($rel == 'canonical') { - $bundle = $this->bundle(); - // A bundle-specific callback takes precedence over the generic one for - // the entity type. - $bundles = entity_get_bundles($this->entityType); - if (isset($bundles[$bundle]['uri_callback'])) { - $uri_callback = $bundles[$bundle]['uri_callback']; - } - elseif (isset($entity_info['uri_callback'])) { - $uri_callback = $entity_info['uri_callback']; - } - - // Invoke the callback to get the URI. If there is no callback, use the - // default URI format. - if (isset($uri_callback) && function_exists($uri_callback)) { - $uri = $uri_callback($this); - } - else { - $uri = array( - 'path' => 'entity/' . $this->entityType . '/' . $this->id(), - ); - } - // Pass the entity data to url() so that alter functions do not need to - // look up this entity again. - $uri['options']['entity_type'] = $this->entityType; - $uri['options']['entity'] = $this; - return $uri; + elseif ($rel == 'canonical') { + $uri = array( + 'path' => 'entity/' . $this->entityType . '/' . $this->id(), + ); + } + else { + return array(); } + + // Pass the entity data to url() so that alter functions do not need to + // look up this entity again. + $uri['options']['entity_type'] = $this->entityType; + $uri['options']['entity'] = $this; + return $uri; } /** diff --git a/core/modules/action/action.module b/core/modules/action/action.module index 5c0e350..4dc9a3b 100644 --- a/core/modules/action/action.module +++ b/core/modules/action/action.module @@ -84,4 +84,5 @@ function action_entity_info(&$entity_info) { $entity_info['action']['controllers']['form']['edit'] = 'Drupal\action\ActionEditFormController'; $entity_info['action']['controllers']['form']['delete'] = 'Drupal\action\Form\ActionDeleteForm'; $entity_info['action']['controllers']['list'] = 'Drupal\action\ActionListController'; + $entity_info['action']['links']['edit-form'] = 'admin/config/system/actions/configure/{action}'; } diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module index 1689d35..70cf6e6 100644 --- a/core/modules/menu/menu.module +++ b/core/modules/menu/menu.module @@ -121,7 +121,7 @@ function menu_menu() { */ function menu_entity_info(&$entity_info) { $entity_info['menu']['controllers']['list'] = 'Drupal\menu\MenuListController'; - $entity_info['menu']['uri_callback'] = 'menu_uri'; + $entity_info['menu']['links']['edit-form'] = 'admin/structure/menu/manage/{menu}'; $entity_info['menu']['controllers']['form'] = array( 'add' => 'Drupal\menu\MenuFormController', 'edit' => 'Drupal\menu\MenuFormController', @@ -149,18 +149,6 @@ function menu_entity_bundle_info() { } /** - * Entity URI callback. - * - * @param \Drupal\system\Entity\Menu $menu - * A Menu entity. - */ -function menu_uri(Menu $menu) { - return array( - 'path' => 'admin/structure/menu/manage/' . $menu->id(), - ); -} - -/** * Implements hook_theme(). */ function menu_theme() { diff --git a/core/modules/system/lib/Drupal/system/Entity/Action.php b/core/modules/system/lib/Drupal/system/Entity/Action.php index ac73e40..ac68e3e 100644 --- a/core/modules/system/lib/Drupal/system/Entity/Action.php +++ b/core/modules/system/lib/Drupal/system/Entity/Action.php @@ -31,9 +31,6 @@ * "id" = "id", * "label" = "label", * "uuid" = "uuid" - * }, - * links = { - * "edit-form" = "admin/config/system/actions/configure/{action}" * } * ) */ diff --git a/core/modules/system/lib/Drupal/system/Entity/Menu.php b/core/modules/system/lib/Drupal/system/Entity/Menu.php index 0898744..4727f8a 100644 --- a/core/modules/system/lib/Drupal/system/Entity/Menu.php +++ b/core/modules/system/lib/Drupal/system/Entity/Menu.php @@ -28,9 +28,6 @@ * "id" = "id", * "label" = "label", * "uuid" = "uuid" - * }, - * links = { - * "edit-form" = "admin/structure/menu/manage/{menu}" * } * ) */