Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / system / tests / modules / form_test / src / Form / FormTestValidateRequiredForm.php
1 <?php
2
3 namespace Drupal\form_test\Form;
4
5 use Drupal\Core\Form\FormBase;
6 use Drupal\Core\Form\FormStateInterface;
7
8 /**
9  * Form constructor to test the #required property.
10  */
11 class FormTestValidateRequiredForm extends FormBase {
12
13   /**
14    * {@inheritdoc}
15    */
16   public function getFormId() {
17     return 'form_test_validate_required_form';
18   }
19
20   /**
21    * {@inheritdoc}
22    */
23   public function buildForm(array $form, FormStateInterface $form_state) {
24     $options = ['foo' => 'foo', 'bar' => 'bar'];
25     $validate = ['::elementValidateRequired'];
26
27     $form['textfield'] = [
28       '#type' => 'textfield',
29       '#title' => 'Name',
30       '#required' => TRUE,
31       '#required_error' => t('Please enter a name.'),
32     ];
33     $form['checkboxes'] = [
34       '#type' => 'checkboxes',
35       '#title' => 'Checkboxes',
36       '#options' => $options,
37       '#required' => TRUE,
38       '#form_test_required_error' => t('Please choose at least one option.'),
39       '#element_validate' => $validate,
40     ];
41     $form['select'] = [
42       '#type' => 'select',
43       '#title' => 'Select',
44       '#options' => $options,
45       '#required' => TRUE,
46       '#form_test_required_error' => t('Please select something.'),
47       '#element_validate' => $validate,
48     ];
49     $form['radios'] = [
50       '#type' => 'radios',
51       '#title' => 'Radios',
52       '#options' => $options,
53       '#required' => TRUE,
54     ];
55     $form['radios_optional'] = [
56       '#type' => 'radios',
57       '#title' => 'Radios (optional)',
58       '#options' => $options,
59     ];
60     $form['radios_optional_default_value_false'] = [
61       '#type' => 'radios',
62       '#title' => 'Radios (optional, with a default value of FALSE)',
63       '#options' => $options,
64       '#default_value' => FALSE,
65     ];
66     $form['actions'] = ['#type' => 'actions'];
67     $form['actions']['submit'] = ['#type' => 'submit', '#value' => 'Submit'];
68     return $form;
69   }
70
71   /**
72    * {@inheritdoc}
73    */
74   public function elementValidateRequired($element, FormStateInterface $form_state) {
75     // Set a custom validation error on the #required element.
76     if (!empty($element['#required_but_empty']) && isset($element['#form_test_required_error'])) {
77       $form_state->setError($element, $element['#form_test_required_error']);
78     }
79   }
80
81   /**
82    * {@inheritdoc}
83    */
84   public function submitForm(array &$form, FormStateInterface $form_state) {
85     drupal_set_message('The form_test_validate_required_form form was submitted successfully.');
86   }
87
88 }