function BookOutlineForm::save

Same name and namespace in other branches
  1. 9 core/modules/book/src/Form/BookOutlineForm.php \Drupal\book\Form\BookOutlineForm::save()
  2. 8.9.x core/modules/book/src/Form/BookOutlineForm.php \Drupal\book\Form\BookOutlineForm::save()
  3. 11.x core/modules/book/src/Form/BookOutlineForm.php \Drupal\book\Form\BookOutlineForm::save()

Overrides EntityForm::save

File

core/modules/book/src/Form/BookOutlineForm.php, line 109

Class

BookOutlineForm
Displays the book outline form.

Namespace

Drupal\book\Form

Code

public function save(array $form, FormStateInterface $form_state) {
  $form_state->setRedirect('entity.node.canonical', [
    'node' => $this->entity
      ->id(),
  ]);
  $book_link = $form_state->getValue('book');
  if (!$book_link['bid']) {
    $this->messenger()
      ->addStatus($this->t('No changes were made'));
    return;
  }
  $this->entity->book = $book_link;
  if ($this->bookManager
    ->updateOutline($this->entity)) {
    if (isset($this->entity->book['parent_mismatch']) && $this->entity->book['parent_mismatch']) {
      // This will usually only happen when JS is disabled.
      $this->messenger()
        ->addStatus($this->t('The post has been added to the selected book. You may now position it relative to other pages.'));
      $form_state->setRedirectUrl($this->entity
        ->toUrl('book-outline-form'));
    }
    else {
      $this->messenger()
        ->addStatus($this->t('The book outline has been updated.'));
    }
  }
  else {
    $this->messenger()
      ->addError($this->t('There was an error adding the post to the book.'));
  }
}

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