public function UserContactImportSettings::configForm in CRM Core 7
Configuration form for settings plugin.
Overrides CRMCoreDataImportSettings::configForm
File
- modules/
crm_core_data_import/ plugins/ settings/ UserContactImportSettings.inc, line 34
Class
Code
public function configForm(&$form, &$form_state, $importer, $label) {
$settings = $importer
->getSettings();
if (!empty($settings['user_contact']) && empty($form_state['values']['user_contact'])) {
$form_state['values']['user_contact'] = $settings['user_contact'];
}
$state_settings = array(
'visible' => array(
':input[name="user_contact[create_automatically]"]' => array(
'checked' => FALSE,
),
),
);
$form['user_contact'] = array(
'#type' => 'container',
'#weight' => -11,
);
$form['user_contact']['title'] = array(
'#type' => 'item',
'#title' => $label,
);
// Ability to disable automatic creation only if crm_core_user_sync enabled.
if (module_exists('crm_core_user_sync')) {
$form['user_contact']['create_automatically'] = array(
'#type' => 'checkbox',
'#title' => t('Create а contact for imported users?'),
'#default_value' => !empty($form_state['values']['user_contact']['create_automatically']) ? $form_state['values']['user_contact']['create_automatically'] : FALSE,
);
}
// If contact entity in import.
$contact = FALSE;
$entities = $this
->entityList($settings);
foreach ($entities as $entity_info) {
if ($entity_info['entity_type'] == 'crm_core_contact' && $entity_info['bundle'] == 'individual') {
$contact = TRUE;
}
}
if ($contact) {
$form['user_contact']['user_type'] = array(
'#type' => 'select',
'#title' => t('Add user'),
'#options' => $this
->getAvailableUsers($settings),
'#states' => $state_settings,
);
$form['user_contact']['add_user_contact'] = array(
'#type' => 'button',
'#id' => 'add-user-contact',
'#value' => t('Add'),
'#name' => 'add-user-contact',
'#states' => $state_settings,
'#ajax' => array(
'callback' => '_crm_core_data_import_user_contact_callback',
'method' => 'replace',
'wrapper' => 'user-contact-form-fields-wrapper',
),
);
$form['user_contact']['fields'] = array(
'#type' => 'container',
'#prefix' => '<div id="user-contact-form-fields-wrapper">',
'#suffix' => '</div>',
'#states' => $state_settings,
'#attributes' => array(
'class' => array(
'settings-fieldset-wrapper',
),
),
);
$this
->formAttachUserContact($form, $form_state, $settings);
}
}