You are here

public function SettingsForm::submitForm in Juicebox HTML5 Responsive Image Galleries 8.3

Same name and namespace in other branches
  1. 8.2 src/Form/SettingsForm.php \Drupal\juicebox\Form\SettingsForm::submitForm()

Form submission handler.

Parameters

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

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

Overrides ConfigFormBase::submitForm

File

src/Form/SettingsForm.php, line 170

Class

SettingsForm
Defines a form that configures global Juicebox settings.

Namespace

Drupal\juicebox\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $library = $this->juiceboxFormatter
    ->getLibrary(TRUE, TRUE);
  if ($form_state
    ->getvalue('translate_interface') && !empty($library['installed']) && $form_state
    ->getvalue('base_languagelist') != $library['base_languagelist']) {
    $this
      ->messenger()
      ->addWarning($this
      ->t('Interface translations are enabled but the base translation string does not match the suggested value for your version of the Juicebox javascript library. If some parts of the Juicebox interface do not appear translated correctly please verify that your base translation string is correct.'));
  }
  $this
    ->config('juicebox.settings')
    ->set('apply_markup_filter', $form_state
    ->getvalue('apply_markup_filter'))
    ->set('enable_cors', $form_state
    ->getvalue('enable_cors'))
    ->set('translate_interface', $form_state
    ->getvalue('translate_interface'))
    ->set('base_languagelist', $form_state
    ->getvalue('base_languagelist'))
    ->set('juicebox_multisize_small', $form_state
    ->getvalue('juicebox_multisize_small'))
    ->set('juicebox_multisize_medium', $form_state
    ->getvalue('juicebox_multisize_medium'))
    ->set('juicebox_multisize_large', $form_state
    ->getvalue('juicebox_multisize_large'))
    ->save();

  // These settings are global and may affect any gallery embed or XML code,
  // so we need to clear everything tagged with juicebox_gallery cache tag.
  Cache::invalidateTags([
    'juicebox_gallery',
  ]);
  $this
    ->messenger()
    ->addMessage($this
    ->t('The Juicebox configuration options have been saved'));
}