function webform_civicrm_process_form_settings in Webform CiviCRM Integration 6.2
Same name and namespace in other branches
- 7.2 webform_civicrm_admin.inc \webform_civicrm_process_form_settings()
Build the $data array for webform settings; called while rebuilding or post-processing the configure form.
2 calls to webform_civicrm_process_form_settings()
- webform_civicrm_configure_form_builder in ./
webform_civicrm_admin.inc - Form to configure CiviCRM options for a Webform Called indirectly from hook_menu() for D7-D6 compatibility
- webform_civicrm_configure_form_submit in ./
webform_civicrm_admin.inc - Submission handler, saves CiviCRM options for a Webform node
File
- ./
webform_civicrm_admin.inc, line 627
Code
function webform_civicrm_process_form_settings(&$vals) {
$data = array(
'contact' => array(),
);
$created_new_contact = FALSE;
list($contact_types, $sub_types) = webform_civicrm_get_contact_types();
for ($n = 1; $n <= $vals['number_of_contacts']; ++$n) {
if (isset($vals[$n . '_contact_type'])) {
$data['contact'][$n] = array(
'contact' => array(
1 => array(
'contact_type' => $vals[$n . '_contact_type'],
'contact_sub_type' => array(),
),
),
'activity_target' => isset($vals['activity_targets'][$n]) ? $vals['activity_targets'][$n] : 1,
);
if ($sub_type = webform_civicrm_aval($vals, 'civicrm_' . $n . '_contact_1_contact_contact_sub_type')) {
$allowed = $sub_types[$vals[$n . '_contact_type']];
foreach ($sub_type as $sub) {
if (isset($allowed[$sub])) {
$data['contact'][$n]['contact'][1]['contact_sub_type'][$sub] = $sub;
}
}
}
}
else {
$data['contact'][$n] = array(
'contact' => array(
1 => array(
'contact_type' => 'individual',
'contact_sub_type' => array(),
),
),
'activity_target' => 1,
);
$created_new_contact = TRUE;
}
}
if ($created_new_contact) {
drupal_set_message(t('Tip: Consider using the clone feature to add multiple similar contacts. (see help for more info)'), 'status', FALSE);
}
foreach ($vals as $key => $val) {
if (strpos($key, '_number_of_') !== FALSE) {
list($ent, $n, $k) = explode('_', $key, 3);
if (isset($data[$ent][$n]) || $ent == 'participant') {
$data[$ent][$n][$k] = $val;
}
}
}
if (!empty($vals['activity_type_id'])) {
$data['activity'] = array(
1 => array(
'activity' => array(
1 => array(
'activity_type_id' => $vals['activity_type_id'],
),
),
),
);
if (isset($vals['activity_subject'])) {
$data['activity'][1]['activity'][1]['subject'] = $vals['activity_subject'];
$data['activity'][1]['assignee_group'] = $vals['activity_assignee_group'];
$data['activity'][1]['details'] = $vals['activity_details'];
$data['activity'][1]['existing_activity_status'] = $vals['existing_activity_status'];
}
else {
$data['activity'][1]['activity'][1]['status_id'] = 2;
}
}
if (!empty($vals['case_type_id'])) {
$data['case'] = array(
1 => array(
'case' => array(
1 => array(
'case_type_id' => $vals['case_type_id'],
),
),
),
);
if (isset($vals['case_subject'])) {
$data['case'][1]['case'][1]['subject'] = $vals['case_subject'];
$data['case'][1]['case'][1]['status_id'] = $vals['case_status_id'];
$data['case'][1]['case'][1]['creator_id'] = $vals['case_creator_id'];
$data['case'][1]['case'][1]['medium_id'] = $vals['case_medium_id'];
}
}
if (isset($vals['participant_reg_type'])) {
$data['participant_reg_type'] = $vals['participant_reg_type'];
$data['reg_options'] = $vals['reg_options'];
}
$vals['data'] = $data;
}