public function RelationsImportSettingsBase::formAttachRelations in CRM Core 7
Attach relation fields to form.
1 call to RelationsImportSettingsBase::formAttachRelations()
- RelationsImportSettingsBase::configForm in modules/
crm_core_data_import/ plugins/ settings/ RelationsImportSettingsBase.inc - Configuration form for settings plugin.
File
- modules/
crm_core_data_import/ plugins/ settings/ RelationsImportSettingsBase.inc, line 87 - Base relations settings handler for CRM Core Data Import.
Class
- RelationsImportSettingsBase
- @file Base relations settings handler for CRM Core Data Import.
Code
public function formAttachRelations(&$form, &$form_state, $settings) {
$triggering_element = !empty($form_state['triggering_element']) ? $form_state['triggering_element'] : FALSE;
if ($triggering_element['#id'] == 'add-relation-button' && !empty($form_state['values']['relations']['relation_type'])) {
$form_state['values']['relations']['fields'][]['relation_type'] = $form_state['values']['relations']['relation_type'];
}
if (!empty($triggering_element['#parents'][3]) && $triggering_element['#parents'][3] == 'remove_field' && $triggering_element['#parents'][0] == 'relations') {
$field_key = $triggering_element['#parents'][2];
unset($form_state['values']['relations']['fields'][$field_key]);
}
if (!empty($form_state['values']['relations']['fields'])) {
foreach ($form_state['values']['relations']['fields'] as $delta => $field) {
$relation_type_object = relation_type_load($field['relation_type']);
$source = crm_core_relationship_load_contact_types($relation_type_object, 0);
$destination = crm_core_relationship_load_contact_types($relation_type_object, 1);
$this
->formAttachFieldRelation($form, $form_state, $settings, $source, $destination, $relation_type_object, $delta);
}
}
}