You are here

public function UserContactImportSettings::formAttachFieldUserContact in CRM Core 7

Attach one reference field to form.

1 call to UserContactImportSettings::formAttachFieldUserContact()
UserContactImportSettings::formAttachUserContact in modules/crm_core_data_import/plugins/settings/UserContactImportSettings.inc
Attach reference fields to form.

File

modules/crm_core_data_import/plugins/settings/UserContactImportSettings.inc, line 148

Class

UserContactImportSettings

Code

public function formAttachFieldUserContact(&$form, &$form_state, $settings, $entity_type, $bundle, $delta, $entity_delta) {
  $destination_values = array();
  $list = $this
    ->getMatchMappingEntity('crm_core_contact', 'individual', $settings);
  foreach ($list as $key => $item) {
    $destination_values[$key] = crm_core_data_import_get_destination_label($item['entity_controller_type'], $item['entity_bundle'], $item['delta']);
  }
  $form['user_contact']['fields'][$delta] = array(
    '#type' => 'fieldset',
    '#attributes' => array(
      'class' => array(
        'settings-fieldset',
      ),
    ),
  );
  $form['user_contact']['fields'][$delta]['label'] = array(
    '#type' => 'item',
    '#markup' => t('User @delta should be related to contact', array(
      '@delta' => $entity_delta,
    )),
  );
  $form['user_contact']['fields'][$delta]['source'] = array(
    '#type' => 'value',
    '#value' => $entity_type . ':' . $bundle . ':' . $entity_delta,
  );
  $form['user_contact']['fields'][$delta]['destination'] = array(
    '#type' => 'select',
    '#options' => $destination_values,
    '#default_value' => !empty($form_state['values']['user_contact']['fields'][$delta]['destination']) ? $form_state['values']['user_contact']['fields'][$delta]['destination'] : FALSE,
  );
  $form['user_contact']['fields'][$delta]['user_type'] = array(
    '#type' => 'value',
    '#value' => $entity_type . ':' . $bundle . ':' . $entity_delta,
  );
  $form['user_contact']['fields'][$delta]['remove_field'] = array(
    '#type' => 'button',
    '#value' => t('Remove'),
    '#name' => drupal_html_id('user-contact-settings-remove-button-' . $entity_delta),
    '#ajax' => array(
      'callback' => '_crm_core_data_import_user_contact_callback',
      'method' => 'replace',
      'wrapper' => 'user-contact-form-fields-wrapper',
    ),
  );
}