You are here

function viewreference_autocomplete_process in View reference 7.3

Same name and namespace in other branches
  1. 6.3 viewreference.module \viewreference_autocomplete_process()
  2. 6 viewreference.module \viewreference_autocomplete_process()
  3. 6.2 viewreference.module \viewreference_autocomplete_process()

Process callback for a viewreference_autocomplete element.

See also

viewreference_element_info().

1 string reference to 'viewreference_autocomplete_process'
viewreference_element_info in ./viewreference.module
Implements hook_element_info().

File

./viewreference.module, line 1059
Defines a field type for referencing a view from a node.

Code

function viewreference_autocomplete_process($element, $form_state, $form) {
  $field_parents = $element['#field_parents'];
  $field_name = $element['#field_name'];
  $language = $element['#language'];
  $field_state = field_form_get_state($field_parents, $field_name, $language, $form_state);
  $field = $field_state['field'];
  $instance = $field_state['instance'];
  $bundle = $instance['bundle'];
  $settings = $field['settings'];
  $element[$element['#columns'][0]] = array(
    '#type' => 'textfield',
    '#default_value' => isset($element['#value'][$element['#columns'][0]]) ? $element['#value'][$element['#columns'][0]] : '',
    '#autocomplete_path' => 'viewreference/autocomplete/' . $bundle . '/' . $field_name,
    '#element_validate' => array(
      'viewreference_autocomplete_validate',
    ),
    '#field_name' => $field_name,
    '#field_parents' => $field_parents,
    '#language' => $language,
    '#delta' => $element['#delta'],
    '#columns' => $element['#columns'],
    '#title' => $element['#title'],
    '#required' => $element['#required'],
    '#description' => isset($element['#description']) ? $element['#description'] : '',
  );
  if ($settings['arguments']['dsv_arguments'] || $settings['arguments']['php_arguments']) {
    $element[$element['#columns'][1]] = array(
      '#type' => $settings['arguments']['rows'] == 1 ? 'textfield' : 'textarea',
      '#default_value' => isset($element['#value'][$element['#columns'][1]]) ? $element['#value'][$element['#columns'][1]] : '',
      '#title' => $instance['label'] . ' ' . t('arguments'),
      '#rows' => $settings['arguments']['rows'],
      '#delta' => $element['#delta'],
      '#columns' => $element['#columns'],
      '#required' => $element['#required'],
      '#description' => isset($element['#description']) ? $element['#description'] : '',
    );
  }
  return $element;
}