public function MigrationDataImport::buildFieldCollectionMapping in CRM Core 7
Build field collection mapping.
1 call to MigrationDataImport::buildFieldCollectionMapping()
- MigrationDataImport::__construct in modules/
crm_core_data_import/ includes/ controllers/ MigrationDataImport.inc - General initialization of a Migration object.
File
- modules/
crm_core_data_import/ includes/ controllers/ MigrationDataImport.inc, line 431 - Handler for migration process.
Class
- MigrationDataImport
- @file Handler for migration process.
Code
public function buildFieldCollectionMapping() {
if (!empty($this->collection_items)) {
$collection_items = $this->collection_items;
foreach ($collection_items as $collection_item) {
$collection_mapping = array();
foreach ($this->fields_mapping as $mapping_item) {
if (!empty($mapping_item['source_field']) && !empty($mapping_item['destination_field'])) {
$source_raw = explode(':', $mapping_item['source_field']);
$destination_raw = explode(':', $mapping_item['destination_field']);
$source = array(
'type' => !empty($source_raw[0]) ? $source_raw[0] : NULL,
'bundle' => !empty($source_raw[1]) ? $source_raw[1] : NULL,
'main_field' => !empty($source_raw[2]) ? $source_raw[2] : NULL,
'sub_field' => !empty($source_raw[3]) ? $source_raw[3] : NULL,
);
$destination = array(
'type' => $this
->getEntityType(),
'bundle' => $this
->getEntityBundle(),
'main_field' => !empty($destination_raw[0]) ? $destination_raw[0] : NULL,
'sub_field' => !empty($destination_raw[1]) ? $destination_raw[1] : NULL,
'part' => !empty($destination_raw[2]) ? $destination_raw[2] : NULL,
'default_value' => !empty($mapping_item['default_value']) ? $mapping_item['default_value'] : NULL,
);
if (!empty($destination['main_field']) && $destination['main_field'] == $collection_item) {
$collection_mapping[] = array(
'source' => $source,
'destination' => $destination,
);
if (!empty($source['main_field'])) {
$main_source_field = $source['type'] . ':' . $source['bundle'] . ':' . $source['main_field'];
}
}
}
}
if (!empty($collection_mapping) && !empty($main_source_field)) {
$this->collection_mapping[$collection_item] = array(
'mapping' => $collection_mapping,
'main_field' => $main_source_field,
);
}
}
}
}