d4f1191862bd640b3b0eef3274fdd427c9803828
[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 class NegotiationSelectedForm extends ConfigFormBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public function getFormId() {
18     return 'language_negotiation_configure_selected_form';
19   }
20
21   /**
22    * {@inheritdoc}
23    */
24   protected function getEditableConfigNames() {
25     return ['language.negotiation'];
26   }
27
28   /**
29    * {@inheritdoc}
30    */
31   public function buildForm(array $form, FormStateInterface $form_state) {
32     $config = $this->config('language.negotiation');
33     $form['selected_langcode'] = [
34       '#type' => 'language_select',
35       '#title' => $this->t('Language'),
36       '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_SITE_DEFAULT,
37       '#default_value' => $config->get('selected_langcode'),
38     ];
39
40     return parent::buildForm($form, $form_state);
41   }
42
43   /**
44    * {@inheritdoc}
45    */
46   public function submitForm(array &$form, FormStateInterface $form_state) {
47     $this->config('language.negotiation')
48       ->set('selected_langcode', $form_state->getValue('selected_langcode'))
49       ->save();
50
51     parent::submitForm($form, $form_state);
52   }
53
54 }