Newer
Older
Alex Pott
committed
<?php
namespace Drupal\language\Form;
Angie Byron
committed
use Drupal\Core\Form\ConfigFormBase;
Dries Buytaert
committed
use Drupal\Core\Form\FormStateInterface;
Alex Pott
committed
/**
* Configure the session language negotiation method for this site.
*
* @internal
Alex Pott
committed
*/
Angie Byron
committed
class NegotiationSessionForm extends ConfigFormBase {
Alex Pott
committed
/**
Alex Pott
committed
* {@inheritdoc}
Alex Pott
committed
*/
Alex Pott
committed
public function getFormId() {
Alex Pott
committed
return 'language_negotiation_configure_session_form';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return ['language.negotiation'];
}
Alex Pott
committed
/**
Dries Buytaert
committed
* {@inheritdoc}
Alex Pott
committed
*/
Dries Buytaert
committed
public function buildForm(array $form, FormStateInterface $form_state) {
Alex Pott
committed
$config = $this->config('language.negotiation');
$form['language_negotiation_session_param'] = [
Angie Byron
committed
'#title' => $this->t('Request/session parameter'),
Alex Pott
committed
'#type' => 'textfield',
'#default_value' => $config->get('session.parameter'),
Angie Byron
committed
'#description' => $this->t('Name of the request/session parameter used to determine the desired language.'),
];
Alex Pott
committed
Alex Pott
committed
$form_state->setRedirect('language.negotiation');
Alex Pott
committed
return parent::buildForm($form, $form_state);
}
/**
Dries Buytaert
committed
* {@inheritdoc}
Alex Pott
committed
*/
Dries Buytaert
committed
public function submitForm(array &$form, FormStateInterface $form_state) {
Alex Pott
committed
$this->config('language.negotiation')
Alex Pott
committed
->set('session.parameter', $form_state->getValue('language_negotiation_session_param'))