function BookOutlineStorage::getChildRelativeDepth

Same name in other branches
  1. 8.9.x core/modules/book/src/BookOutlineStorage.php \Drupal\book\BookOutlineStorage::getChildRelativeDepth()
  2. 10 core/modules/book/src/BookOutlineStorage.php \Drupal\book\BookOutlineStorage::getChildRelativeDepth()
  3. 11.x core/modules/book/src/BookOutlineStorage.php \Drupal\book\BookOutlineStorage::getChildRelativeDepth()

Overrides BookOutlineStorageInterface::getChildRelativeDepth

File

core/modules/book/src/BookOutlineStorage.php, line 61

Class

BookOutlineStorage
Defines a storage class for books outline.

Namespace

Drupal\book

Code

public function getChildRelativeDepth($book_link, $max_depth) {
    $query = $this->connection
        ->select('book');
    $query->addField('book', 'depth');
    $query->condition('bid', $book_link['bid']);
    $query->orderBy('depth', 'DESC');
    $query->range(0, 1);
    $i = 1;
    $p = 'p1';
    while ($i <= $max_depth && $book_link[$p]) {
        $query->condition($p, $book_link[$p]);
        $p = 'p' . ++$i;
    }
    return $query->execute()
        ->fetchField();
}

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