You are here

public function BookManager::bookLinkTranslate in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookLinkTranslate()
  2. 9 core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookLinkTranslate()

File

core/modules/book/src/BookManager.php, line 1047

Class

BookManager
Defines a book manager.

Namespace

Drupal\book

Code

public function bookLinkTranslate(&$link) {

  // Check access via the api, since the query node_access tag doesn't check
  // for unpublished nodes.
  // @todo load the nodes en-mass rather than individually.
  // @see https://www.drupal.org/project/drupal/issues/2470896
  $node = $this->entityTypeManager
    ->getStorage('node')
    ->load($link['nid']);
  $link['access'] = $node && $node
    ->access('view');

  // For performance, don't localize a link the user can't access.
  if ($link['access']) {

    // The node label will be the value for the current language.
    $node = $this->entityRepository
      ->getTranslationFromContext($node);
    $link['title'] = $node
      ->label();
    $link['options'] = [];
  }
  return $link;
}