function webform_configure_form_submit in Webform 7.4
Same name and namespace in other branches
- 6.3 includes/webform.pages.inc \webform_configure_form_submit()
- 7.3 includes/webform.pages.inc \webform_configure_form_submit()
Submit handler for webform_configure_form().
1 string reference to 'webform_configure_form_submit'
- webform_configure_form in includes/
webform.pages.inc - Main configuration form for editing a webform node.
File
- includes/
webform.pages.inc, line 436 - Menu callbacks and functions for configuring and editing webforms.
Code
function webform_configure_form_submit($form, &$form_state) {
// Edit the node by reference just to shorten it up.
$node =& $form['#node'];
// Save the confirmation.
$node->webform['confirmation'] = $form_state['values']['confirmation']['value'];
$node->webform['confirmation_format'] = $form_state['values']['confirmation']['format'];
// Save the redirect URL.
$node->webform['redirect_url'] = $form_state['values']['redirect_url'];
// Overall form status.
$node->webform['status'] = $form_state['values']['status'];
// Save roles.
$node->webform['roles'] = array_keys(array_filter($form_state['values']['roles']));
// Set the block option.
$node->webform['block'] = $form_state['values']['block'];
// Set the draft option.
$node->webform['allow_draft'] = $form_state['values']['allow_draft'];
// Set the auto-save draft option.
$node->webform['auto_save'] = $form_state['values']['auto_save'];
// Set the submit limit to -1 if set to unlimited.
if ($form_state['values']['enforce_limit'] == 'no') {
$node->webform['submit_limit'] = -1;
$node->webform['submit_interval'] = -1;
}
else {
$node->webform['submit_limit'] = (int) $form_state['values']['submit_limit'];
$node->webform['submit_interval'] = (int) $form_state['values']['submit_interval'];
}
// Set the total submit limit to -1 if set to unlimited.
if ($form_state['values']['enforce_total_limit'] == 'no') {
$node->webform['total_submit_limit'] = -1;
$node->webform['total_submit_interval'] = -1;
}
else {
$node->webform['total_submit_limit'] = (int) $form_state['values']['total_submit_limit'];
$node->webform['total_submit_interval'] = (int) $form_state['values']['total_submit_interval'];
}
// Set the progress bar preferences.
$progress_bar_settings = array_filter($form_state['values']['webform_progressbar_style']);
$node->webform['progressbar_page_number'] = in_array('progressbar_page_number', $progress_bar_settings);
$node->webform['progressbar_percent'] = in_array('progressbar_percent', $progress_bar_settings);
$node->webform['progressbar_bar'] = in_array('progressbar_bar', $progress_bar_settings);
$node->webform['progressbar_pagebreak_labels'] = in_array('progressbar_pagebreak_labels', $progress_bar_settings);
$node->webform['progressbar_include_confirmation'] = in_array('progressbar_include_confirmation', $progress_bar_settings);
$node->webform['progressbar_label_first'] = $form_state['values']['progressbar_label_first'];
$node->webform['progressbar_label_confirmation'] = $form_state['values']['progressbar_label_confirmation'];
// Set the preview settings.
$node->webform['preview'] = (int) $form_state['values']['preview'];
$node->webform['preview_next_button_label'] = $form_state['values']['preview_next_button_label'];
$node->webform['preview_prev_button_label'] = $form_state['values']['preview_prev_button_label'];
$node->webform['preview_title'] = $form_state['values']['preview_title'];
$node->webform['preview_message'] = $form_state['values']['preview_message']['value'];
$node->webform['preview_message_format'] = $form_state['values']['preview_message']['format'];
// Save the list of included preview components.
// We actually maintain an *exclusion* list, so any new components will
// default to being included in the preview until unchecked.
$included = array_keys(array_filter((array) $form_state['values']['preview_components']));
$excluded = array_diff(array_keys($node->webform['components']), $included);
$node->webform['preview_excluded_components'] = $excluded;
// Set submit notice.
$node->webform['submit_notice'] = $form_state['values']['submit_notice'];
// Set confidential.
$node->webform['confidential'] = $form_state['values']['confidential'];
// Set submit button text.
$node->webform['submit_text'] = $form_state['values']['submit_text'];
// Set next serial number. It must be a positive integer greater than any
// existing serial number, which could have increased while this form was
// being edited.
$next_min = _webform_submission_serial_next_value_used($node->nid);
$next_serial = (int) $form_state['values']['next_serial'];
if ($next_serial < $next_min) {
drupal_set_message(t('The next submission number was increased to @min to make it higher than existing submissions.', array(
'@min' => $next_min,
)));
$next_serial = $next_min;
}
$node->webform['next_serial'] = $next_serial;
}