You are here

function _addressfield_autocomplete_widget_after_build in Addressfield Autocomplete 7

Adds the states and JS settings to the correct form element by name.

Parameters

$form_element: The form element containing the parents array.

1 string reference to '_addressfield_autocomplete_widget_after_build'
addressfield_autocomplete_field_widget_form in ./addressfield_autocomplete.module
Implements hook_field_widget_form().

File

./addressfield_autocomplete.module, line 598
The Addressfield Autocomplete module code.

Code

function _addressfield_autocomplete_widget_after_build($form_element) {
  $parents = $form_element['#parents'];
  $name = array_shift($parents) . '[' . implode('][', $parents) . ']';

  // Update fields in JS settings with complete field name from parents.
  $attached_js_fields =& $form_element['#attached']['js'][0]['data']['addressfield_autocomplete']['fields'];
  $renamed_field_settings = array();
  foreach ($attached_js_fields as $key => $settings) {
    $renamed_field_settings[$name] = $settings;
  }
  $attached_js_fields = $renamed_field_settings;
  $form_element['autocomplete']['#states'] = array(
    'visible' => array(
      ':input[name="' . $name . '[reveal]"]' => array(
        'value' => '0',
      ),
    ),
  );
  $form_element['link_container']['#states'] = array(
    'visible' => array(
      ':input[name="' . $name . '[reveal]"]' => array(
        'value' => '0',
      ),
    ),
  );
  $form_element['widget']['#states'] = array(
    'visible' => array(
      ':input[name="' . $name . '[reveal]"]' => array(
        'value' => '1',
      ),
    ),
  );
  return $form_element;
}