You are here

function _crm_core_data_import_attach_elements_field in CRM Core 7

Attach mapping field to entity bundle fieldset.

Parameters

array $form: Main form.

array $form_state: Main form state.

string $key: Key of fieldset.

int $delta: Delta in the current fieldset.

array $source_fields: List of available fields from source.

array $fields: List of available fields from destination.

1 call to _crm_core_data_import_attach_elements_field()
_crm_core_data_import_attach_fields_form in modules/crm_core_data_import/crm_core_data_import.admin.inc
Entity fields and bundles.

File

modules/crm_core_data_import/crm_core_data_import.admin.inc, line 907
Configuration pages for CRM Core Data Import.

Code

function _crm_core_data_import_attach_elements_field(&$form, &$form_state, $key, $delta, $source_fields, $fields) {
  if (empty($source_fields)) {
    $source_key = !empty($form_state['values']['mapping'][$key]['fields'][$delta]['source_field']) ? $form_state['values']['mapping'][$key]['fields'][$delta]['source_field'] : 0;
    $source_fields = array(
      $source_key => t('Unavailable'),
    );
  }
  else {
    $source_fields = array(
      'default_value' => t('(provide value)'),
    ) + $source_fields;
  }
  $form['mapping'][$key]['fields'][$delta] = array(
    '#type' => 'container',
    '#attributes' => array(
      'class' => array(
        'field-fieldset-wrapper',
      ),
    ),
  );
  $form['mapping'][$key]['fields'][$delta]['source_field'] = array(
    '#type' => 'select',
    '#options' => $source_fields,
    '#default_value' => !empty($form_state['values']['mapping'][$key]['fields'][$delta]['source_field']) ? $form_state['values']['mapping'][$key]['fields'][$delta]['source_field'] : FALSE,
  );
  $form['mapping'][$key]['fields'][$delta]['destination_field'] = array(
    '#type' => 'select',
    '#options' => $fields,
    '#default_value' => !empty($form_state['values']['mapping'][$key]['fields'][$delta]['destination_field']) ? $form_state['values']['mapping'][$key]['fields'][$delta]['destination_field'] : FALSE,
  );
  $form['mapping'][$key]['fields'][$delta]['default_value'] = array(
    '#type' => 'textfield',
    '#default_value' => !empty($form_state['values']['mapping'][$key]['fields'][$delta]['default_value']) ? $form_state['values']['mapping'][$key]['fields'][$delta]['default_value'] : FALSE,
  );
  $form['mapping'][$key]['fields'][$delta]['remove_field'] = array(
    '#type' => 'button',
    '#default_value' => t('Remove'),
    '#name' => 'remove-field-button-' . drupal_html_id($key . $delta),
    '#ajax' => array(
      'callback' => '_crm_core_data_import_entity_type_action_callback',
      'method' => 'replace',
      'wrapper' => 'mapping-fieldset-wrapper',
    ),
  );
}