You are here

function field_conditional_state_handle_availability in Field Conditional States 7

@todo. handler for 'disable', 'enable' states

Parameters

string $state: The current state.

string $condition: The current condition.

array $form_element: An associative array for the form element.

array $element: The element array.

Return value

array Returns the $form_element.

1 string reference to 'field_conditional_state_handle_availability'
field_conditional_state_field_state in ./field_conditional_state.module
Implements hook_field_state().

File

./field_conditional_state.module, line 612
Main functions for field_conditional_state

Code

function field_conditional_state_handle_availability($state, $condition, $form_element, &$element) {
  $field_info = field_info_instance($element['#entity_type'], $element['#field_name'], $element['#bundle']);
  switch ($field_info['widget']['type']) {
    case 'options_buttons':
      foreach ($element['#options'] as $option_id => $option) {
        $element[$option_id]['#states'][$state] = $condition;
      }
      break;
    case 'file_generic':
    case 'image_image':
      $element['upload']['#states'][$state] = $condition;
      $element['upload_button']['#states'][$state] = $condition;
      $element['remove_button']['#states'][$state] = $condition;
      break;
    case 'date_popup':
    case 'date_popup_repeat':
    case 'date_select':
    case 'date_select_repeat':
    case 'date_text':
    case 'date_text_repeat':
      $form_element['#attributes'] = array(
        'class' => array(
          'date-conditional-state',
        ),
        'state' => $state,
      );
      $element['#states'][$state] = $condition;
      break;
    default:
      $element['#states'][$state] = $condition;
  }
  return $form_element;
}