function eloqua_webform_form_alter in Eloqua 7.2
Same name and namespace in other branches
- 7 eloqua_webform/eloqua_webform.module \eloqua_webform_form_alter()
Implements hook_form_alter().
File
- eloqua_webform/
eloqua_webform.module, line 234
Code
function eloqua_webform_form_alter(&$form, $form_state, $form_id) {
// Add setting to allow for immediate posting.
if ($form_id == 'eloqua_admin_form') {
$form['webform'] = array(
'#type' => 'fieldset',
'#title' => t('Webform Settings'),
'#description' => t('Webform / Eloqua integration.'),
'eloqua_webform_process_submit' => array(
'#type' => 'checkbox',
'#title' => 'Immediately process submissions?',
'#default_value' => variable_get('eloqua_webform_process_submit', ''),
),
);
}
elseif (strstr($form_id, 'webform_client_form')) {
if (!array_key_exists('#node', $form) || !is_object($form['#node']) || empty($form['#node']->nid)) {
return;
}
$nid = $form['#node']->nid;
$form_settings = (array) eloqua_webform_load($nid);
// Check to see if the form exists.
if (empty($form_settings) || !$form_settings['is_active']) {
return;
}
// Check for QUERY parameter mappings to assign default values.
_eloqua_form_url_map($form, $form['#node']->webform['components']);
// Just shove everything into a container.
$form['#submit'][] = 'eloqua_webform_submit';
$form['eloqua'] = array();
$process_every_page = is_object($form_settings['data']) && isset($form_settings['data']->process_every_page) ? $form_settings['data']->process_every_page : FALSE;
$form['eloqua']['process_every_page'] = array(
'#type' => 'value',
'#value' => $process_every_page,
);
$form['eloqua']['elqFormName'] = array(
'#type' => 'hidden',
'#default_value' => (string) $form_settings['form_name'],
);
$form['eloqua']['elqSiteId'] = array(
'#type' => 'hidden',
'#default_value' => variable_get('eloqua_site_id', 0),
);
$form['eloqua']['elqDefaultTargetURL'] = array(
'#type' => 'hidden',
'#default_value' => '',
);
$form['eloqua']['elqPost'] = array(
'#type' => 'hidden',
'#default_value' => '',
);
$form['eloqua']['elqCustomerGUID'] = array(
'#type' => 'hidden',
'#default_value' => '',
);
// Drupal 7 doesn't automatically give hidden elements an #id.
$form['eloqua']['elqCustomerGUID']['#attributes']['id'] = 'edit-elqCustomerGUID';
$form['eloqua']['elqCookieWrite'] = array(
'#type' => 'hidden',
'#default_value' => 0,
);
// Add GUID tracking
$form['#attached']['js'][] = drupal_get_path('module', 'eloqua_webform') . '/eloqua_webform.js';
// Hooks that don't need to load up all the checks to see if said form is
// eloqua_enabled.
foreach (module_implements('eloqua_form_alter') as $module_name) {
$method = $module_name . '_eloqua_form_alter';
$method($form, $form_state, $form_id);
}
}
}