You are here

function viewreference_autocomplete_process in View reference 6

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

Process an individual element.

Build the form element. When creating a form using FAPI #process, note that $element['#value'] is already set.

1 string reference to 'viewreference_autocomplete_process'
viewreference_elements in ./viewreference.module
Implementation of FAPI hook_elements().

File

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

Code

function viewreference_autocomplete_process($element, $edit, $form_state, $form) {
  $field = $form['#field_info'][$element['#field_name']];
  $element[$element['#columns'][0]] = array(
    '#type' => 'text_textfield',
    '#default_value' => isset($element['#value']) ? $element['#value'] : '',
    '#autocomplete_path' => 'viewreference/autocomplete/' . $element['#field_name'],
    '#element_validate' => array(
      'viewreference_autocomplete_validate',
    ),
    '#prefix' => t('<div class="viewreference-wrapper" id="viewreference-!field_id">', array(
      "!field_id" => str_replace('_', '-', $element['#field_name']) . '-' . $element['#delta'],
    )),
    // localized for customisations
    // The following values were set by the content module and need
    // to be passed down to the nested element.
    '#field_name' => $element['#field_name'],
    '#delta' => $element['#delta'],
    '#columns' => $element['#columns'],
    '#title' => $element['#title'],
    '#required' => $element['#required'],
    '#description' => $element['#description'],
  );
  if ($field['dsv_arguments'] == 1 || $field['php_arguments'] == 1) {
    if ($field['rows'] == 1) {
      $args_widget = 'text_textfield';
    }
    else {
      $args_widget = 'textarea';
    }
    $element[$element['#columns'][1]] = array(
      '#type' => $args_widget,
      '#default_value' => isset($element['#value'][$element['#columns'][1]]) ? $element['#value'][$element['#columns'][1]] : '',
      '#element_validate' => array(
        'viewreference_arguments_validate',
      ),
      '#title' => $element['#title'] . ' ' . t('arguments'),
      '#suffix' => t('</div>'),
      // The following values were set by the content module and need
      // to be passed down to the nested element.
      '#field_name' => $element['#field_name'] . t(" arguments"),
      '#delta' => $element['#delta'],
      '#columns' => $element['#columns'],
      '#required' => $element['#required'],
      '#description' => $element['#description'],
    );
    if ($field['rows'] > 1) {
      $element[$element['#columns'][1]]['#rows'] = $field['rows'];
    }
  }
  else {
    $element[$element['#columns'][0]]['#suffix'] = t('</div>');
  }
  return $element;
}