You are here

public function BookManager::deleteFromBook in Drupal 8

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

Deletes node's entry from book table.

Parameters

int $nid: The nid to delete.

Overrides BookManagerInterface::deleteFromBook

File

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

Class

BookManager
Defines a book manager.

Namespace

Drupal\book

Code

public function deleteFromBook($nid) {
  $original = $this
    ->loadBookLink($nid, FALSE);
  $this->bookOutlineStorage
    ->delete($nid);
  if ($nid == $original['bid']) {

    // Handle deletion of a top-level post.
    $result = $this->bookOutlineStorage
      ->loadBookChildren($nid);
    $children = $this->entityTypeManager
      ->getStorage('node')
      ->loadMultiple(array_keys($result));
    foreach ($children as $child) {
      $child->book['bid'] = $child
        ->id();
      $this
        ->updateOutline($child);
    }
  }
  $this
    ->updateOriginalParent($original);
  $this->books = NULL;
  Cache::invalidateTags([
    'bid:' . $original['bid'],
  ]);
}