Implements EntityInterface::uri().
Overrides EntityInterface::uri
public function uri() {
$bundle = $this
->bundle();
// A bundle-specific callback takes precedence over the generic one for the
// entity type.
$entity_info = $this
->entityInfo();
if (isset($entity_info['bundles'][$bundle]['uri_callback'])) {
$uri_callback = $entity_info['bundles'][$bundle]['uri_callback'];
}
elseif (isset($entity_info['uri_callback'])) {
$uri_callback = $entity_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($this);
// 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;
}
}