private static function LinkField::getUriAsDisplayableString in Conditional Fields 8
Same name and namespace in other branches
- 4.x src/Plugin/conditional_fields/handler/LinkField.php \Drupal\conditional_fields\Plugin\conditional_fields\handler\LinkField::getUriAsDisplayableString()
Gets the URI without the 'internal:' or 'entity:' scheme.
The following two forms of URIs are transformed:
- 'entity:' URIs: to entity autocomplete ("label (entity id)") strings;
- 'internal:' URIs: the scheme is stripped.
This method is the inverse of ::getUserEnteredStringAsUri().
Parameters
string $uri: The URI to get the displayable string for.
Return value
string|array An available values for triggering event.
See also
LinkWidget::getUserEnteredStringAsUri()
1 call to LinkField::getUriAsDisplayableString()
- LinkField::statesHandler in src/
Plugin/ conditional_fields/ handler/ LinkField.php - @todo: Provide possibility to create states with pair URL and title. Only states for URL currently supported.
File
- src/
Plugin/ conditional_fields/ handler/ LinkField.php, line 80
Class
- LinkField
- Provides states handler for links provided by the Link module.
Namespace
Drupal\conditional_fields\Plugin\conditional_fields\handlerCode
private static function getUriAsDisplayableString($uri) {
$scheme = parse_url($uri, PHP_URL_SCHEME);
// By default, the displayable string is the URI.
$displayable_string = $uri;
// A different displayable string may be chosen in case of the 'internal:'
// or 'entity:' built-in schemes.
if ($scheme === 'internal') {
$uri_reference = explode(':', $uri, 2)[1];
// @todo '<front>' is valid input for BC reasons, may be removed by
// https://www.drupal.org/node/2421941
$path = parse_url($uri, PHP_URL_PATH);
if ($path === '/') {
$uri_reference = '<front>' . substr($uri_reference, 1);
}
$displayable_string = $uri_reference;
}
elseif ($scheme === 'entity') {
list($entity_type, $entity_id) = explode('/', substr($uri, 7), 2);
// Show the 'entity:' URI as the entity autocomplete would.
$entity_type_manager = \Drupal::entityTypeManager();
if ($entity_type_manager
->getDefinition($entity_type, FALSE) && ($entity = $entity_type_manager
->getStorage($entity_type)
->load($entity_id))) {
$displayable_string = static::getEntityLabels($entity);
}
}
return $displayable_string;
}