You are here

function _field_conditional_state_validate in Field Conditional States 7.2

Required validation added for conditional field.

Parameters

$form: Array of form elements.

$form_state: Array of form state elements.

1 string reference to '_field_conditional_state_validate'
field_conditional_state_form_alter in ./field_conditional_state.module
Implements hook_form_alter().

File

./field_conditional_state.module, line 1041
Main functions of this module.

Code

function _field_conditional_state_validate($form, &$form_state) {
  foreach ($form_state['field'] as $key => $field_data) {

    // Checking for field collection items.
    if ($key == '#parents') {
      foreach ($field_data as $field_items) {
        foreach ($field_items['und'][0]['#fields'] as $field) {
          $field_instance = $field[LANGUAGE_NONE]['instance'];
          $field_conditional = _field_conditional_state_get_conditional_states($field_instance['entity_type'], $field_instance['bundle'], $field_instance['field_name']);

          // Checking fields are conditional field or not.
          if (!empty($field_conditional)) {
            foreach ($field_conditional as $conditional) {

              // Checking conditional field state is required or not. If required
              // then set the required form validation.
              if ($conditional['state'] == 'required' && empty($form[$conditional['field_name']][LANGUAGE_NONE][0]['#value']) && !empty($form[$conditional['states'][0]['control_field']][LANGUAGE_NONE]['#value'])) {
                form_set_error($field_instance['label'], t('@name field is required.', array(
                  '@name' => $field_instance['label'],
                )));
              }
            }
          }
        }
      }
    }
    else {
      $field_instance = $field_data[LANGUAGE_NONE]['instance'];
      $field_conditional = _field_conditional_state_get_conditional_states($field_instance['entity_type'], $field_instance['bundle'], $field_instance['field_name']);

      // Checking fields are conditional field or not.
      if (!empty($field_conditional)) {
        foreach ($field_conditional as $conditional) {

          // Checking conditional field state is required or not. If required
          // then set the required form validation.
          if ($conditional['state'] == 'required' && empty($form[$conditional['field_name']][LANGUAGE_NONE][0]['#value']) && !empty($form[$conditional['states'][0]['control_field']][LANGUAGE_NONE]['#value'])) {
            form_set_error($field_instance['label'], t('@name field is required.', array(
              '@name' => $field_instance['label'],
            )));
          }
        }
      }
    }
  }
}