public function CivicrmDataSourceHandler::getEntitiesForRelationships in CRM Core 7
Returns list of entities which has relationships.
Overrides CRMCoreDataSourceHandler::getEntitiesForRelationships
File
- modules/
crm_core_data_import/ plugins/ source/ CivicrmDataSourceHandler.inc, line 184
Class
Code
public function getEntitiesForRelationships($settings, $item, $importer) {
$list = array();
if (!empty($settings['relations_values'])) {
foreach ($settings['relations_values'] as $relationship_type_id => $relation) {
$civicrm_destination_ids = array();
if (!empty($relation['relation_type'])) {
$data = array(
'source' => $this
->getDrupalEntityInfoFromMapping($importer
->getMappingSettings(), 'Contact', $relation['source_entity']),
'destination' => $this
->getDrupalEntityInfoFromMapping($importer
->getMappingSettings(), 'Contact', $relation['destination_entity']),
);
// Get source data.
$this
->getSourceResourceData($data, $item, $importer);
// Fill civicrm_destination_ids with source ids and list of items.
if (!empty($data['source']) && !empty($data['destination'])) {
$this
->getRelationshipCiviCrmDestinationIds($civicrm_destination_ids, $data['remote_source_id'], $relationship_type_id);
$civicrm_destination_ids = array_unique($civicrm_destination_ids);
if (!empty($data['table']) && !empty($civicrm_destination_ids)) {
$this
->buildItemList($list, $data, $civicrm_destination_ids, $relation);
}
}
}
}
}
return $list;
}