You are here

function mvf_field_widget_validate_value_form_state_mockup_override in Measured Value Field 7

FAPI element validate function.

In fact function does not validate anything, however, overrides $form_state with mocked up field and instance. Supposedly this overriden $form_state will be used in Number module FAPI element validate function. After running all Number module FAPI element validate functions, the effect done by this function should be reverted by calling FAPI element validate function mvf_field_widget_validate_value_form_state_mockup_revert().

1 string reference to 'mvf_field_widget_validate_value_form_state_mockup_override'
_mvf_widget_process in ./mvf.module
Process function for form element type 'mvf_widget'.

File

./mvf.module, line 1839
Define a field type of measured value.

Code

function mvf_field_widget_validate_value_form_state_mockup_override($element, &$form_state) {
  $subfield = 'value';

  // Extracting field state from $form_state.
  $field_state = field_form_get_state($element['#field_parents'], $element['#field_name'], $element['#language'], $form_state);
  if (is_null($field_state)) {

    // This validation callback is called probably from views filter. So we have
    // to mimic $field_state on the fly.
    $field_state = array(
      'field' => field_info_field($element['#field_name']),
    );
    $field_state['instance'] = mvf_field_instance($field_state['field']);
  }
  $mocked_field_state = $field_state;

  // Mocking up field and instance definition arrays. Along the way saving in
  // mocked $field_state the original MVF field and instance definition arrays.
  $mocked_field_state['field'] = mvf_field_mockup($field_state['field'], $subfield);
  $mocked_field_state['field']['mvf'] = $field_state['field'];
  $mocked_field_state['instance'] = mvf_instance_mockup($field_state['field'], $field_state['instance'], $subfield);
  $mocked_field_state['instance']['mvf'] = $field_state['instance'];

  // Writing mocked up $field_state into $form_state.
  field_form_set_state($element['#field_parents'], $element['#field_name'], $element['#language'], $form_state, $mocked_field_state);
}