You are here

public function LanguageAddForm::save in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/language/src/Form/LanguageAddForm.php \Drupal\language\Form\LanguageAddForm::save()
  2. 9 core/modules/language/src/Form/LanguageAddForm.php \Drupal\language\Form\LanguageAddForm::save()

Form submission handler for the 'save' action.

Normally this method should be overridden to provide specific messages to the user and redirect the form after the entity has been saved.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

int Either SAVED_NEW or SAVED_UPDATED, depending on the operation performed.

Overrides EntityForm::save

File

core/modules/language/src/Form/LanguageAddForm.php, line 87

Class

LanguageAddForm
Controller for language addition forms.

Namespace

Drupal\language\Form

Code

public function save(array $form, FormStateInterface $form_state) {
  parent::save($form, $form_state);
  $t_args = [
    '%language' => $this->entity
      ->label(),
    '%langcode' => $this->entity
      ->id(),
  ];
  $this
    ->logger('language')
    ->notice('The %language (%langcode) language has been created.', $t_args);
  $this
    ->messenger()
    ->addStatus($this
    ->t('The language %language has been created and can now be used.', $t_args));
  if ($this->moduleHandler
    ->moduleExists('block')) {

    // Tell the user they have the option to add a language switcher block
    // to their theme so they can switch between the languages.
    $this
      ->messenger()
      ->addStatus($this
      ->t('Use one of the language switcher blocks to allow site visitors to switch between languages. You can enable these blocks on the <a href=":block-admin">block administration page</a>.', [
      ':block-admin' => Url::fromRoute('block.admin_display')
        ->toString(),
    ]));
  }
  $form_state
    ->setRedirectUrl($this->entity
    ->toUrl('collection'));
}