You are here

public function CivicrmDataSourceHandler::getAppropriateCiviCrmField in CRM Core 7

Return appropriate fields which exist in mapping for certain Drupal fields.

1 call to CivicrmDataSourceHandler::getAppropriateCiviCrmField()
CivicrmDataSourceHandler::getReferenceCiviCrmDestinationIds in modules/crm_core_data_import/plugins/source/CivicrmDataSourceHandler.inc
Add destination id for references.

File

modules/crm_core_data_import/plugins/source/CivicrmDataSourceHandler.inc, line 356

Class

CivicrmDataSourceHandler

Code

public function getAppropriateCiviCrmField($entity_type, $entity_bundle, $delta, $field_name, $mapping) {
  $fields = array();

  // Build entity key string.
  $entity_controller_type = crm_core_data_import_get_destination_entity_controller($entity_type);
  $entity_key = implode(':', array(
    $entity_controller_type,
    $entity_bundle,
    $delta,
  ));

  // Get appropriate field name.
  if (!empty($mapping[$entity_key])) {
    foreach ($mapping[$entity_key] as $mapping_item) {
      if (!empty($mapping_item['destination_field']) && $mapping_item['destination_field'] == $field_name) {
        list(, , $civicrm_field_name) = explode(':', $mapping_item['source_field']);
        $fields[] = $civicrm_field_name;
      }
    }
  }
  return $fields;
}