BookOutlineStorage::updateMovedChildren

public BookOutlineStorage::updateMovedChildren($bid, $original, $expressions, $shift)

Update the book ID of the book link that it's being moved.

Parameters

int $bid: The ID of the book whose children we move.

array $original: The original parent of the book link.

array $expressions: Array of expressions to be added to the query.

int $shift: The difference in depth between the old and the new position of the element being moved.

Return value

mixed The number of rows matched by the update query.

Overrides BookOutlineStorageInterface::updateMovedChildren

File

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

Class

BookOutlineStorage
Defines a storage class for books outline.

Namespace

Drupal\book

Code

public function updateMovedChildren($bid, $original, $expressions, $shift) {
  $query = $this->connection->update('book');
  $query->fields(array('bid' => $bid));

  foreach ($expressions as $expression) {
    $query->expression($expression[0], $expression[1], $expression[2]);
  }

  $query->expression('depth', 'depth + :depth', array(':depth' => $shift));
  $query->condition('bid', $original['bid']);
  $p = 'p1';
  for ($i = 1; !empty($original[$p]); $p = 'p' . ++$i) {
    $query->condition($p, $original[$p]);
  }

  return $query->execute();
}
doc_Drupal
2016-10-29 08:48:25
Comments
Leave a Comment

Please login to continue.