You are here

public function BookNavigationCacheContext::getContext in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/book/src/Cache/BookNavigationCacheContext.php \Drupal\book\Cache\BookNavigationCacheContext::getContext()

Returns the string representation of the cache context.

A cache context service's name is used as a token (placeholder) cache key, and is then replaced with the string returned by this method.

Return value

string The string representation of the cache context.

Overrides CacheContextInterface::getContext

File

core/modules/book/src/Cache/BookNavigationCacheContext.php, line 56
Contains \Drupal\book\Cache\BookNavigationCacheContext.

Class

BookNavigationCacheContext
Defines the book navigation cache context service.

Namespace

Drupal\book\Cache

Code

public function getContext() {

  // Find the current book's ID.
  $current_bid = 0;
  if ($node = $this->requestStack
    ->getCurrentRequest()
    ->get('node')) {
    $current_bid = empty($node->book['bid']) ? 0 : $node->book['bid'];
  }

  // If we're not looking at a book node, then we're not navigating a book.
  if ($current_bid === 0) {
    return 'book.none';
  }

  // If we're looking at a book node, get the trail for that node.
  $active_trail = $this->container
    ->get('book.manager')
    ->getActiveTrailIds($node->book['bid'], $node->book);
  return implode('|', $active_trail);
}