function BookManager::bookTreeAllData

Same name in other branches
  1. 8.9.x core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeAllData()
  2. 10 core/modules/book/src/ProxyClass/BookManager.php \Drupal\book\ProxyClass\BookManager::bookTreeAllData()
  3. 10 core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeAllData()
  4. 11.x core/modules/book/src/ProxyClass/BookManager.php \Drupal\book\ProxyClass\BookManager::bookTreeAllData()
  5. 11.x core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeAllData()

Overrides BookManagerInterface::bookTreeAllData

2 calls to BookManager::bookTreeAllData()
BookManager::bookTreeGetFlat in core/modules/book/src/BookManager.php
Gets the book for a page and returns it as a linear array.
BookManager::getTableOfContents in core/modules/book/src/BookManager.php
Returns an array of book pages in table of contents order.

File

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

Class

BookManager
Defines a book manager.

Namespace

Drupal\book

Code

public function bookTreeAllData($bid, $link = NULL, $max_depth = NULL) {
    // Use $nid as flag for whether the data being loaded is for the whole tree.
    $nid = $link['nid'] ?? 0;
    $langcode = $this->languageManager
        ->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)
        ->getId();
    // Create a cache ID for the given $nid, $link, $langcode and $max_depth.
    $cid = implode(':', [
        'book-links',
        $bid,
        $nid,
        $langcode,
        (int) $max_depth,
    ]);
    // Get it from cache, if available.
    if ($cache = $this->memoryCache
        ->get($cid)) {
        return $cache->data;
    }
    // If the tree data was not in the static cache, build $tree_parameters.
    $tree_parameters = [
        'min_depth' => 1,
        'max_depth' => $max_depth,
    ];
    if ($nid) {
        $active_trail = $this->getActiveTrailIds($bid, $link);
        $tree_parameters['expanded'] = $active_trail;
        $tree_parameters['active_trail'] = $active_trail;
        $tree_parameters['active_trail'][] = $nid;
    }
    // Build the tree using the parameters.
    $tree_build = $this->bookTreeBuild($bid, $tree_parameters);
    // Cache the tree build in memory.
    $this->memoryCache
        ->set($cid, $tree_build);
    return $tree_build;
}

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