function better_exposed_filters_element_validate_slider_step in Better Exposed Filters 7.3
Form element validation handler for BEF jQuery slider step setting.
The full specified value range of the slider (range maximum - range minimum) should be evenly divisible by the step.
1 string reference to 'better_exposed_filters_element_validate_slider_step'
- better_exposed_filters_exposed_form_plugin::options_form in ./
better_exposed_filters_exposed_form_plugin.inc - Provide a form to edit options for this plugin.
File
- ./
better_exposed_filters.module, line 148 - Allows the use of checkboxes, radio buttons or hidden fields for exposed Views filters.
Code
function better_exposed_filters_element_validate_slider_step($element, &$form_state) {
$value = $element['#value'];
if ($value !== '' && _better_exposed_filters_slider_selected($element, $form_state)) {
$slider_min = $form_state['values']['exposed_form_options']['bef'][$element['#bef_filter_id']]['slider_options']['bef_slider_min'];
$slider_max = $form_state['values']['exposed_form_options']['bef'][$element['#bef_filter_id']]['slider_options']['bef_slider_max'];
// Must be positive.
if ($value < 0) {
form_error($element, t('%name must be a positive number.', array(
'%name' => $element['#title'],
)));
}
// Must not have more than 5 decimal places.
if (_better_exposed_filters_get_num_decimal_places($value) > 5) {
form_error($element, t('%name must not have more than 5 decimal places.', array(
'%name' => $element['#title'],
)));
}
// The slider range must be evenly divisible by the step.
// We check like this because of the issues PHP has with inaccurate floats,
// where 2 might actually be 1.9999999999.
// Because of this we can't reliably use fmod().
if (is_numeric($slider_min) && is_numeric($slider_max) && !ctype_digit((string) abs(($slider_max - $slider_min) / $value))) {
form_error($element, t('The range of the slider (Range maximum - Range minimum) should be evenly divisible by the step.'));
}
}
}