function date_views_select_validate in Date 7.3
Same name and namespace in other branches
- 8 date_views/date_views.module \date_views_select_validate()
- 7.2 date_views/date_views.module \date_views_select_validate()
Validation hook for exposed filters that use the select widget.
This is to ensure the the user completes all parts of the date not just some parts. Only needed for the select widget.
1 string reference to 'date_views_select_validate'
- date_views_filter_handler_simple::value_form in date_views/
includes/ date_views_filter_handler_simple.inc - Add a type selector to the value form.
File
- date_views/
date_views.module, line 514 - Date Views module.
Code
function date_views_select_validate(&$form, &$form_state) {
// If there are no values just return.
if (empty($form['value']) && empty($form['min'])) {
return;
}
$granularity = !empty($form['min']['#date_format']) ? date_format_order($form['min']['#date_format']) : date_format_order($form['value']['#date_format']);
$filled = array();
$value = drupal_array_get_nested_value($form_state['input'], $form['#parents']);
foreach ($granularity as $part) {
if (isset($value['value']) && is_numeric($value['value'][$part])) {
$filled[] = $part;
}
}
if (!empty($filled) && count($filled) != count($granularity)) {
$unfilled = array_diff($granularity, $filled);
foreach ($unfilled as $part) {
switch ($part) {
case 'year':
form_error($form['value'][$part], t('Please choose a year.'), $form_state);
break;
case 'month':
form_error($form['value'][$part], t('Please choose a month.'), $form_state);
break;
case 'day':
form_error($form['value'][$part], t('Please choose a day.'), $form_state);
break;
case 'hour':
form_error($form['value'][$part], t('Please choose an hour.'), $form_state);
break;
case 'minute':
form_error($form['value'][$part], t('Please choose a minute.'), $form_state);
break;
case 'second':
form_error($form['value'][$part], t('Please choose a second.'), $form_state);
break;
}
}
}
}