You are here

function crm_core_data_import_field_mapping in CRM Core 7

Page callback for field mapping page.

2 string references to 'crm_core_data_import_field_mapping'
crm_core_data_import_attach_pager in modules/crm_core_data_import/crm_core_data_import.module
Attach page to form.
crm_core_data_import_menu in modules/crm_core_data_import/crm_core_data_import.module
Implements hook_menu().

File

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

Code

function crm_core_data_import_field_mapping($form, &$form_state, $importer_id) {
  $importer = crm_core_data_import_load_importer($importer_id);
  $form_state['importer'] = $importer;

  // Build form_state from data import settings.
  if (empty($form_state['values']['mapping']) && empty($form_state['triggering_element'])) {
    $mapping_settings = $importer
      ->getMappingSettings();
    foreach ($mapping_settings as $key => $mapping_instance) {
      list($entity_type, $entity_bundle, ) = explode(':', $key);
      $form_state['values']['mapping'][$key]['fields'] = $mapping_instance;
      $entity_key = $entity_type . ':' . $entity_bundle;
      if (empty($form_state['values']['mapping'][$entity_key . '_delta'])) {
        $form_state['values']['mapping'][$entity_key . '_delta'] = 1;
      }
      else {
        $form_state['values']['mapping'][$entity_key . '_delta']++;
      }
    }
  }
  $form['#tree'] = TRUE;

  // Get available source fields.
  $source_fields = $importer
    ->getSourceFields();
  _crm_core_data_import_attach_entity_form($form, $form_state);
  $form['mapping'] = array(
    '#type' => 'container',
    '#prefix' => '<div id="mapping-fieldset-wrapper">',
    '#suffix' => '</div>',
  );
  _crm_core_data_import_attach_fields_form($form, $form_state, $source_fields);
  $form['previous'] = array(
    '#type' => 'submit',
    '#value' => t('Previous'),
    '#id' => 'button-previous',
  );
  $form['next'] = array(
    '#type' => 'submit',
    '#value' => t('Next'),
    '#id' => 'button-next',
  );
  $form['#attached']['css'][] = _crm_core_data_import_css_path();
  crm_core_data_import_attach_pager($form, $importer, __FUNCTION__);
  return $form;
}