0310a37e52f611044db5fcff48b0c58d5ea58fdb
[yaffs-website] / web / core / modules / system / tests / modules / form_test / src / Callbacks.php
1 <?php
2
3 namespace Drupal\form_test;
4
5 use Drupal\Core\Form\FormStateInterface;
6
7 /**
8  * Simple class for testing methods as Form API callbacks.
9  */
10 class Callbacks {
11
12   /**
13    * Form element validation handler for 'name' in form_test_validate_form().
14    */
15   public function validateName(&$element, FormStateInterface $form_state) {
16     $triggered = FALSE;
17     if ($form_state->getValue('name') == 'element_validate') {
18       // Alter the form element.
19       $element['#value'] = '#value changed by #element_validate';
20       // Alter the submitted value in $form_state.
21       $form_state->setValueForElement($element, 'value changed by setValueForElement() in #element_validate');
22
23       $triggered = TRUE;
24     }
25     if ($form_state->getValue('name') == 'element_validate_access') {
26       $form_state->set('form_test_name', $form_state->getValue('name'));
27       // Alter the form element.
28       $element['#access'] = FALSE;
29
30       $triggered = TRUE;
31     }
32     elseif ($form_state->has('form_test_name')) {
33       // To simplify this test, just take over the element's value into $form_state.
34       $form_state->setValueForElement($element, $form_state->get('form_test_name'));
35
36       $triggered = TRUE;
37     }
38
39     if ($triggered) {
40       // Output the element's value from $form_state.
41       drupal_set_message(t('@label value: @value', ['@label' => $element['#title'], '@value' => $form_state->getValue('name')]));
42
43       // Trigger a form validation error to see our changes.
44       $form_state->setErrorByName('');
45     }
46   }
47
48 }