function NodeViewBuilder::buildLinks

Same name and namespace in other branches
  1. 9 core/modules/node/src/NodeViewBuilder.php \Drupal\node\NodeViewBuilder::buildLinks()
  2. 8.9.x core/modules/node/src/NodeViewBuilder.php \Drupal\node\NodeViewBuilder::buildLinks()
  3. 11.x core/modules/node/src/NodeViewBuilder.php \Drupal\node\NodeViewBuilder::buildLinks()

Build the default links (Read more) for a node.

Parameters

\Drupal\node\NodeInterface $entity: The node object.

string $view_mode: A view mode identifier.

Return value

array An array that can be processed by Link::preRenderLinks().

See also

\Drupal\Core\Render\Element\Link::preRenderLinks()

1 call to NodeViewBuilder::buildLinks()
NodeViewBuilder::renderLinks in core/modules/node/src/NodeViewBuilder.php
#lazy_builder callback; builds a node's links.

File

core/modules/node/src/NodeViewBuilder.php, line 126

Class

NodeViewBuilder
View builder handler for nodes.

Namespace

Drupal\node

Code

protected static function buildLinks(NodeInterface $entity, $view_mode) {
  $links = [];
  // Always display a read more link on teasers because we have no way
  // to know when a teaser view is different than a full view.
  if ($view_mode == 'teaser') {
    $node_title_stripped = strip_tags($entity->label());
    $links['node-readmore'] = [
      'title' => 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,
      ],
    ];
  }
  return [
    '#theme' => 'links__node__node',
    '#links' => $links,
    '#attributes' => [
      'class' => [
        'links',
        'inline',
      ],
    ],
  ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.