public function SmartReadMoreLinkFormatter::viewElements in Smart read more link 8
View elements.
@inheritdoc
Overrides FormatterInterface::viewElements
File
- src/
Plugin/ Field/ FieldFormatter/ SmartReadMoreLinkFormatter.php, line 120
Class
- SmartReadMoreLinkFormatter
- Plugin implementation of the 'Random_default' formatter.
Namespace
Drupal\smart_read_more_link\Plugin\Field\FieldFormatterCode
public function viewElements(FieldItemListInterface $items, $langcode) {
$elements = $this->summaryFormatter
->viewElements($items, $langcode);
$defaults = $this->defaultFormatter
->viewElements($items, $langcode);
$elements_copy = $elements;
$elementsMarkup = $this->renderer
->render($elements_copy);
$defaultsMarkup = $this->renderer
->render($defaults);
$readMore = (string) $elementsMarkup !== (string) $defaultsMarkup;
if ($readMore) {
$entity = $items
->getEntity();
$node_title_stripped = strip_tags($entity
->label());
$links['body-readmore'] = [
'title' => $this
->t('Read more<span class="visually-hidden"> about @title</span>', [
'@title' => $node_title_stripped,
]),
'url' => $entity
->toUrl(),
'language' => $entity
->language(),
'attributes' => [
'rel' => 'tag',
'title' => $node_title_stripped,
],
];
$elements[count($elements) - 1]['links'] = [
'#theme' => 'links__node__node',
'#links' => $links,
'#attributes' => [
'class' => [
'links',
'inline',
],
],
];
}
return $elements;
}