NegotiationSessionForm.php

Same filename in other branches
  1. 8.9.x core/modules/language/src/Form/NegotiationSessionForm.php
  2. 10 core/modules/language/src/Form/NegotiationSessionForm.php
  3. 11.x core/modules/language/src/Form/NegotiationSessionForm.php

Namespace

Drupal\language\Form

File

core/modules/language/src/Form/NegotiationSessionForm.php

View source
<?php

namespace Drupal\language\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

/**
 * Configure the session language negotiation method for this site.
 *
 * @internal
 */
class NegotiationSessionForm extends ConfigFormBase {
    
    /**
     * {@inheritdoc}
     */
    public function getFormId() {
        return 'language_negotiation_configure_session_form';
    }
    
    /**
     * {@inheritdoc}
     */
    protected function getEditableConfigNames() {
        return [
            'language.negotiation',
        ];
    }
    
    /**
     * {@inheritdoc}
     */
    public function buildForm(array $form, FormStateInterface $form_state) {
        $config = $this->config('language.negotiation');
        $form['language_negotiation_session_param'] = [
            '#title' => $this->t('Request/session parameter'),
            '#type' => 'textfield',
            '#default_value' => $config->get('session.parameter'),
            '#description' => $this->t('Name of the request/session parameter used to determine the desired language.'),
        ];
        $form_state->setRedirect('language.negotiation');
        return parent::buildForm($form, $form_state);
    }
    
    /**
     * {@inheritdoc}
     */
    public function submitForm(array &$form, FormStateInterface $form_state) {
        $this->config('language.negotiation')
            ->set('session.parameter', $form_state->getValue('language_negotiation_session_param'))
            ->save();
        parent::submitForm($form, $form_state);
    }

}

Classes

Title Deprecated Summary
NegotiationSessionForm Configure the session language negotiation method for this site.

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