function webform_configure_form_validate in Webform 7.4
Same name and namespace in other branches
- 6.3 includes/webform.pages.inc \webform_configure_form_validate()
- 7.3 includes/webform.pages.inc \webform_configure_form_validate()
Validate handler for webform_configure_form().
File
- includes/
webform.pages.inc, line 392 - Menu callbacks and functions for configuring and editing webforms.
Code
function webform_configure_form_validate($form, &$form_state) {
// Ensure the entered redirect URL is valid.
if ($form_state['values']['redirect'] == 'url') {
$redirect_url = trim($form_state['values']['redirect_url']);
if (empty($redirect_url)) {
form_error($form['submission']['redirection']['redirect_url'], t('A valid URL is required for custom redirection.'));
}
elseif (strpos($redirect_url, 'http') === 0 && !valid_url(webform_replace_tokens($redirect_url, $form['#node']), TRUE)) {
form_error($form['submission']['redirection']['redirect_url'], t('The entered URL is not a valid address.'));
}
else {
form_set_value($form['submission']['redirection']['redirect_url'], $redirect_url, $form_state);
}
}
elseif ($form_state['values']['redirect'] == 'confirmation') {
form_set_value($form['submission']['redirection']['redirect_url'], '<confirmation>', $form_state);
}
else {
form_set_value($form['submission']['redirection']['redirect_url'], '<none>', $form_state);
}
// Ensure only positive integers are entered as submission limits.
foreach (array(
'total_submit_limit' => 'enforce_total_limit',
'submit_limit' => 'enforce_limit',
) as $field => $enforce_fk) {
$limit = $form['submission'][$field][$field]['#value'];
if ($form['submission'][$field][$enforce_fk]['#value'] !== 'no' && $limit !== '' && (int) $limit < 1 && (int) $limit !== -1) {
form_error($form['submission'][$field][$field], t('The submission limit must be at least 1.'));
}
}
// Prohibit the combination of confidential + per-user limit + ip-only
// submission tracking for anonymous users as it would not be enforceable.
if (webform_variable_get('webform_tracking_mode') == 'ip_address' && $form_state['values']['confidential'] && $form_state['values']['enforce_limit'] == 'yes') {
// Note that FAPI doesn't actually support error highlighting on radio or
// checkbox form elements.
form_error($form['advanced']['confidential'], t('Choose a "Per user submission limit" or "Confidential submissions", but not both. Or ask the adminstrator to track anonymous users by cookie, rather than IP address only.'));
}
}