Version 1
[yaffs-website] / web / core / modules / system / tests / modules / form_test / src / Form / FormTestLanguageSelectForm.php
1 <?php
2
3 namespace Drupal\form_test\Form;
4
5 use Drupal\Core\Form\FormBase;
6 use Drupal\Core\Form\FormStateInterface;
7 use Drupal\Core\Language\LanguageInterface;
8 use Symfony\Component\HttpFoundation\JsonResponse;
9
10 /**
11  * Builds a form to test the language select form element.
12  */
13 class FormTestLanguageSelectForm extends FormBase {
14
15   /**
16    * {@inheritdoc}
17    */
18   public function getFormId() {
19     return 'form_test_language_select';
20   }
21
22   /**
23    * {@inheritdoc}
24    */
25   public function buildForm(array $form, FormStateInterface $form_state) {
26     $form['languages_all'] = [
27       '#title' => t('Languages: All'),
28       '#type' => 'language_select',
29       '#languages' => LanguageInterface::STATE_ALL,
30       '#default_value' => 'xx',
31     ];
32     $form['languages_configurable'] = [
33       '#title' => t('Languages: Configurable'),
34       '#type' => 'language_select',
35       '#languages' => LanguageInterface::STATE_CONFIGURABLE,
36       '#default_value' => 'en',
37     ];
38     $form['languages_locked'] = [
39       '#title' => t('Languages: Locked'),
40       '#type' => 'language_select',
41       '#languages' => LanguageInterface::STATE_LOCKED,
42     ];
43     $form['languages_config_and_locked'] = [
44       '#title' => t('Languages: Configurable and locked'),
45       '#type' => 'language_select',
46       '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_LOCKED,
47       '#default_value' => 'dummy_value',
48     ];
49     $form['language_custom_options'] = [
50       '#title' => t('Languages: Custom'),
51       '#type' => 'language_select',
52       '#languages' => LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_LOCKED,
53       '#options' => ['opt1' => 'First option', 'opt2' => 'Second option', 'opt3' => 'Third option'],
54       '#default_value' => 'opt2',
55     ];
56
57     $form['submit'] = ['#type' => 'submit', '#value' => 'Submit'];
58     return $form;
59   }
60
61   /**
62    * {@inheritdoc}
63    */
64   public function submitForm(array &$form, FormStateInterface $form_state) {
65     $form_state->setResponse(new JsonResponse($form_state->getValues()));
66   }
67
68 }