public function CivicrmDataSourceHandler::getReferenceCiviCrmDestinationIds in CRM Core 7
Add destination id for references.
1 call to CivicrmDataSourceHandler::getReferenceCiviCrmDestinationIds()
- CivicrmDataSourceHandler::getEntitiesForReferences in modules/
crm_core_data_import/ plugins/ source/ CivicrmDataSourceHandler.inc - Returns related list entities from migration results for references.
File
- modules/
crm_core_data_import/ plugins/ source/ CivicrmDataSourceHandler.inc, line 276
Class
Code
public function getReferenceCiviCrmDestinationIds(&$civicrm_destination_ids, $source_id, $importer, $reference) {
$mapping = $importer
->getMappingSettings();
list($entity_type, $entity_bundle, $delta, $drupal_field_name) = explode(':', $reference['reference_type']);
$civicrm_fields = $this
->getAppropriateCiviCrmField($entity_type, $entity_bundle, $delta, $drupal_field_name, $mapping);
if (!empty($civicrm_fields)) {
$options = array(
'activity_id' => $source_id,
'sequential' => 1,
);
foreach ($civicrm_fields as $civicrm_field) {
$options['return.' . $civicrm_field] = 1;
}
$civicrm_activity = crm_core_data_import_civicrm_api('Activity', 'get', $options);
$civicrm_activity = reset($civicrm_activity);
foreach ($civicrm_fields as $civicrm_field) {
if (!empty($civicrm_activity[$civicrm_field])) {
if (is_array($civicrm_activity[$civicrm_field])) {
foreach ($civicrm_activity[$civicrm_field] as $target) {
$civicrm_destination_ids[] = $target;
}
}
else {
$civicrm_destination_ids[] = $civicrm_activity[$civicrm_field];
}
}
}
}
}