diff --git a/includes/common.inc b/includes/common.inc index 72fcf76..893942b 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -7569,44 +7569,30 @@ function entity_prepare_view($entity_type, $entities, $langcode = NULL) { * uri of its own. */ function entity_uri($entity_type, $entity) { - // This check enables the URI of an entity to be easily overridden from what - // the callback for the entity type or bundle would return, and it helps - // minimize performance overhead when entity_uri() is called multiple times - // for the same entity. - if (!isset($entity->uri)) { - $info = entity_get_info($entity_type); - list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity); - - // A bundle-specific callback takes precedence over the generic one for the - // entity type. - if (isset($info['bundles'][$bundle]['uri callback'])) { - $uri_callback = $info['bundles'][$bundle]['uri callback']; - } - elseif (isset($info['uri callback'])) { - $uri_callback = $info['uri callback']; - } - else { - $uri_callback = NULL; - } + $info = entity_get_info($entity_type); + list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity); - // Invoke the callback to get the URI. If there is no callback, set the - // entity's 'uri' property to FALSE to indicate that it is known to not have - // a URI. - if (isset($uri_callback) && function_exists($uri_callback)) { - $entity->uri = $uri_callback($entity); - if (!isset($entity->uri['options'])) { - $entity->uri['options'] = array(); - } - // Pass the entity data to url() so that alter functions do not need to - // lookup this entity again. - $entity->uri['options']['entity_type'] = $entity_type; - $entity->uri['options']['entity'] = $entity; - } - else { - $entity->uri = FALSE; - } + // A bundle-specific callback takes precedence over the generic one for the + // entity type. + if (isset($info['bundles'][$bundle]['uri callback'])) { + $uri_callback = $info['bundles'][$bundle]['uri callback']; + } + elseif (isset($info['uri callback'])) { + $uri_callback = $info['uri callback']; + } + else { + return NULL; + } + + // Invoke the callback to get the URI. If there is no callback, return NULL. + if (isset($uri_callback) && function_exists($uri_callback)) { + $uri = $uri_callback($entity); + // Pass the entity data to url() so that alter functions do not need to + // lookup this entity again. + $uri['options']['entity_type'] = $entity_type; + $uri['options']['entity'] = $entity; + return $uri; } - return $entity->uri ? $entity->uri : NULL; } /**