function webform_validate_date in Webform 5.2
Same name and namespace in other branches
- 5 components/date.inc \webform_validate_date()
- 6.3 components/date.inc \webform_validate_date()
- 6.2 components/date.inc \webform_validate_date()
- 7.4 components/date.inc \webform_validate_date()
- 7.3 components/date.inc \webform_validate_date()
Element validation for Webform date fields.
File
- components/
date.inc, line 211 - Webform module date component.
Code
function webform_validate_date($form_item, $component) {
$component = $form_item['#webform_component'];
$form_key = $component['form_key'];
$name = $component['name'];
// Check if the user filled the required fields.
foreach (array(
'day',
'month',
'year',
) as $field_type) {
if (!is_numeric($form_item[$field_type]['#value']) && $form_item['#required']) {
form_set_error($form_key, t('!name field is required.', array(
'!name' => $name,
)));
return;
}
}
// Check for a valid date.
if ($form_item['month']['#value'] !== '' || $form_item['day']['#value'] !== '' || $form_item['year']['#value'] !== '') {
if (!checkdate((int) $form_item['month']['#value'], (int) $form_item['day']['#value'], (int) $form_item['year']['#value'])) {
form_set_error($form_key, t('Entered !name is not a valid date.', array(
'!name' => $name,
)));
return;
}
}
// Check the date is between allowed years.
if ($form_item['year']['#value'] !== '' && is_numeric($component['extra']['year_start']) && is_numeric($component['extra']['year_end'])) {
if ($form_item['year']['#value'] < $component['extra']['year_start'] || $form_item['year']['#value'] > $component['extra']['year_end']) {
form_set_error($form_key . '][year', t('The entered date needs to be between the years @start and @end.', array(
'@start' => $component['extra']['year_start'],
'@end' => $component['extra']['year_end'],
)));
return;
}
}
}