public function CivicrmDataSourceHandler::getEntitiesForReferences in CRM Core 7
Returns related list entities from migration results for references.
Overrides CRMCoreDataSourceHandler::getEntitiesForReferences
File
- modules/
crm_core_data_import/ plugins/ source/ CivicrmDataSourceHandler.inc, line 216
Class
Code
public function getEntitiesForReferences($settings, $item, $importer) {
$list = array();
if (!empty($settings)) {
foreach ($settings['fields'] as $plugin_data) {
if (!$this
->entityIsSourceReference($item['entity_type'], $item['bundle'], $item['delta'], $plugin_data['source'])) {
continue;
}
$data = array(
'destination' => array(),
'source' => array(),
);
// Get types, bundles and deltas of drupal entity.
list($data['source']['type'], $data['source']['bundle'], $data['source']['delta']) = explode(':', $plugin_data['source']);
list($data['destination']['type'], $data['destination']['bundle'], $data['destination']['delta']) = explode(':', $plugin_data['destination']);
// Get source data.
$this
->getSourceResourceData($data, $item, $importer);
// Fill civicrm_destination_ids with source ids and list of items.
$civicrm_destination_ids = array();
$this
->getReferenceCiviCrmDestinationIds($civicrm_destination_ids, $data['remote_source_id'], $importer, $plugin_data);
$civicrm_destination_ids = array_unique($civicrm_destination_ids);
if (!empty($data['table']) && !empty($civicrm_destination_ids)) {
$this
->buildItemList($list, $data, $civicrm_destination_ids, $plugin_data);
}
}
}
return $list;
}