function eloqua_webform_submit in Eloqua 7.2
Same name and namespace in other branches
- 6 eloqua.module \eloqua_webform_submit()
- 7 eloqua_webform/eloqua_webform.module \eloqua_webform_submit()
Form submission handler for eloqua_admin_form().
See also
1 string reference to 'eloqua_webform_submit'
- eloqua_webform_form_alter in eloqua_webform/
eloqua_webform.module - Implements hook_form_alter().
File
- eloqua_webform/
eloqua_webform.module, line 318
Code
function eloqua_webform_submit($form, $form_state) {
// Only process upon the final page submission, unless otherwise told.
$process_every_page = $form_state['values']['process_every_page'];
if (!$process_every_page) {
if (!array_key_exists('webform_completed', $form_state) || !$form_state['webform_completed']) {
return;
}
}
$values = array();
// Collapse form values so they make more sense to Eloqua.
$post_fields = automate_webform_values($form, $form_state);
$node = node_load($form_state['values']['details']['nid']);
$components = $node->webform['components'];
$field_mappings = array();
if (is_array($components)) {
foreach ($components as $component) {
if (!empty($component['extra']['eloqua']['key'])) {
$field_mappings[$component['form_key']]['key'] = $component['extra']['eloqua']['key'];
}
else {
$field_mappings[$component['form_key']]['key'] = $component['form_key'];
}
}
}
$values['form_post'] = automate_map_webform_values($post_fields, $field_mappings);
// Grab Eloqua hidden values.
foreach ($form_state['values'] as $name => $value) {
if (substr($name, 0, 3) === 'elq') {
$values['form_post'][$name] = $value;
}
}
// Get apache headers.
$values['user_headers'] = automate_get_user_headers();
// Save the values and essential information to the database.
$info = new stdClass();
$info->{'form_id'} = $form_state['values']['form_id'];
$info->{'post_time'} = time();
$info->{'status'} = ELOQUA_STATUS_NEW;
$info->{'data'} = $values;
$post = eloqua_post_create($info);
// Do we want to process immediately?
if (variable_get('eloqua_webform_process_submit', 0)) {
_eloqua_send_posts($post);
}
if (!isset($post->post_id)) {
$message = t('Unable to save submitted entry. <pre>!data</pre>');
$vars = array(
'!data' => var_export($info, TRUE),
);
watchdog('eloqua', $message, $vars, WATCHDOG_NOTICE);
}
}