class EntityLink in Drupal 10
Same name in this branch
- 10 core/modules/views/src/Plugin/views/field/EntityLink.php \Drupal\views\Plugin\views\field\EntityLink
- 10 core/modules/comment/src/Plugin/views/field/EntityLink.php \Drupal\comment\Plugin\views\field\EntityLink
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/field/EntityLink.php \Drupal\views\Plugin\views\field\EntityLink
- 9 core/modules/views/src/Plugin/views/field/EntityLink.php \Drupal\views\Plugin\views\field\EntityLink
Field handler to present a link to an entity.
Plugin annotation
@ViewsField("entity_link");
Hierarchy
- class \Drupal\views\Plugin\views\field\LinkBase extends \Drupal\views\Plugin\views\field\FieldPluginBase uses RedirectDestinationTrait, EntityTranslationRenderTrait
- class \Drupal\views\Plugin\views\field\EntityLink
Expanded class hierarchy of EntityLink
1 file declares its use of EntityLink
- TranslationLink.php in core/
modules/ content_translation/ src/ Plugin/ views/ field/ TranslationLink.php
File
- core/
modules/ views/ src/ Plugin/ views/ field/ EntityLink.php, line 15
Namespace
Drupal\views\Plugin\views\fieldView source
class EntityLink extends LinkBase {
/**
* {@inheritdoc}
*/
public function render(ResultRow $row) {
return $this
->getEntity($row) ? parent::render($row) : [];
}
/**
* {@inheritdoc}
*/
protected function renderLink(ResultRow $row) {
if ($this->options['output_url_as_text']) {
return $this
->getUrlInfo($row)
->toString();
}
return parent::renderLink($row);
}
/**
* {@inheritdoc}
*/
protected function getUrlInfo(ResultRow $row) {
$template = $this
->getEntityLinkTemplate();
$entity = $this
->getEntity($row);
if ($this->languageManager
->isMultilingual()) {
$entity = $this
->getEntityTranslation($entity, $row);
}
return $entity
->toUrl($template)
->setAbsolute($this->options['absolute']);
}
/**
* Returns the entity link template name identifying the link route.
*
* @returns string
* The link template name.
*/
protected function getEntityLinkTemplate() {
return 'canonical';
}
/**
* {@inheritdoc}
*/
protected function getDefaultLabel() {
return $this
->t('view');
}
/**
* {@inheritdoc}
*/
protected function defineOptions() {
$options = parent::defineOptions();
$options['output_url_as_text'] = [
'default' => FALSE,
];
$options['absolute'] = [
'default' => FALSE,
];
return $options;
}
/**
* {@inheritdoc}
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
$form['output_url_as_text'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Output the URL as text'),
'#default_value' => $this->options['output_url_as_text'],
];
$form['absolute'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Use absolute link (begins with "http://")'),
'#default_value' => $this->options['absolute'],
'#description' => $this
->t('Enable this option to output an absolute link. Required if you want to use the path as a link destination.'),
];
parent::buildOptionsForm($form, $form_state);
// Only show the 'text' field if we don't want to output the raw URL.
$form['text']['#states']['visible'][':input[name="options[output_url_as_text]"]'] = [
'checked' => FALSE,
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EntityLink:: |
public | function |
Overrides LinkBase:: |
|
EntityLink:: |
protected | function |
Overrides LinkBase:: |
|
EntityLink:: |
protected | function |
Returns the default label for this link. Overrides LinkBase:: |
3 |
EntityLink:: |
protected | function | Returns the entity link template name identifying the link route. | 3 |
EntityLink:: |
protected | function |
Returns the URI elements of the link. Overrides LinkBase:: |
|
EntityLink:: |
public | function |
Overrides LinkBase:: |
|
EntityLink:: |
protected | function |
Prepares the link to view an entity. Overrides LinkBase:: |
2 |
EntityTranslationRenderTrait:: |
protected | property | The renderer to be used to render the entity row. | |
EntityTranslationRenderTrait:: |
public | function | Returns the entity translation matching the configured row language. | |
EntityTranslationRenderTrait:: |
protected | function | Returns the current renderer. | |
LinkBase:: |
protected | property | The access manager service. | |
LinkBase:: |
protected | property | Current user object. | |
LinkBase:: |
protected | property | The entity repository. | |
LinkBase:: |
protected | property | The entity type manager. | |
LinkBase:: |
protected | property | The language manager. | |
LinkBase:: |
protected | function | Adds language information to the options. | |
LinkBase:: |
protected | function | Checks access to the link route. | |
LinkBase:: |
public static | function | ||
LinkBase:: |
protected | function | Gets the current active user. | |
LinkBase:: |
protected | function | ||
LinkBase:: |
protected | function |
Returns the entity type identifier. Overrides EntityTranslationRenderTrait:: |
|
LinkBase:: |
protected | function | ||
LinkBase:: |
protected | function |
Returns the language manager. Overrides EntityTranslationRenderTrait:: |
|
LinkBase:: |
protected | function |
Returns the top object of a view. Overrides EntityTranslationRenderTrait:: |
|
LinkBase:: |
public | function | ||
LinkBase:: |
public | function | ||
LinkBase:: |
public | function | Constructs a LinkBase object. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. |