680dddfc0dacd0ad68ba6742f114eae611400b5b
[yaffs-website] / web / core / modules / language / src / Form / NegotiationSelectedForm.php
1 <?php
2
3 namespace Drupal\language\Form;
4
5 use Drupal\Core\Form\FormStateInterface;
6 use Drupal\Core\Language\LanguageInterface;
7 use Drupal\Core\Form\ConfigFormBase;
8
9 /**
10  * Configure the selected language negotiation method for this site.
11  *
12  * @internal
13  */
14 class NegotiationSelectedForm extends ConfigFormBase {
15
16   /**
17    * {@inheritdoc}
18    */
19   public function getFormId() {
20     return 'language_negotiation_configure_selected_form';
21   }
22
23   /**
24    * {@inheritdoc}
25    */
26   protected function getEditableConfigNames() {
27     return ['language.negotiation'];
28   }
29
30   /**
31    * {@inheritdoc}
32    */
33   public function buildForm(array $form, FormStateInterface $form_state) {
34     $config = $this->config('language.negotiation');
35     $form['selected_langcode'] = [
36       '#type' => 'language_select',
37       '#title' => $this->t('Language'),
38       '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_SITE_DEFAULT,
39       '#default_value' => $config->get('selected_langcode'),
40     ];
41
42     return parent::buildForm($form, $form_state);
43   }
44
45   /**
46    * {@inheritdoc}
47    */
48   public function submitForm(array &$form, FormStateInterface $form_state) {
49     $this->config('language.negotiation')
50       ->set('selected_langcode', $form_state->getValue('selected_langcode'))
51       ->save();
52
53     parent::submitForm($form, $form_state);
54   }
55
56 }