public function availability_calendar_handler_filter_availability::validate_value in Availability Calendars 7.3
Same name and namespace in other branches
- 7.5 views/availability_calendar_handler_filter_availability.inc \availability_calendar_handler_filter_availability::validate_value()
- 7.4 views/availability_calendar_handler_filter_availability.inc \availability_calendar_handler_filter_availability::validate_value()
Validate that the values convert to something usable.
1 call to availability_calendar_handler_filter_availability::validate_value()
- availability_calendar_handler_filter_availability::exposed_validate in ./
availability_calendar_handler_filter_availability.inc - Validates our part of the exposed form.
File
Class
- availability_calendar_handler_filter_availability
- @class availability_calendar_handler_filter_availability Views handler to filter on availability.
Code
public function validate_value(&$element, $form_state) {
// In Views UI, the value is required if the filter is not exposed.
// In exposed form, values are required if "Required" was checked.
if (empty($form_state['exposed'])) {
$required = !$form_state['values']['options']['expose_button']['checkbox']['checkbox'];
$operator = $form_state['values']['options']['operator'];
}
else {
$required = (bool) $this->options['expose']['required'];
$operator = empty($this->options['expose']['use_operator']) ? $this->operator : $form_state['values'][$this->options['expose']['operator_id']];
}
$operators = $this
->operators();
$values = empty($operator) ? array(
'from',
'to',
'to1',
'duration',
) : $operators[$operator]['values'];
$today = new DateTime();
$value = drupal_array_get_nested_value($form_state['values'], $element['#parents']);
$from_valid = FALSE;
if (in_array('from', $values) && array_key_exists('from', $value)) {
$from_valid = $this
->validate_valid_time_1($element['from'], $value['from'], $required, $today, t('Only future availability can be searched.'));
}
if (in_array('to', $values) && array_key_exists('to', $value)) {
$this
->validate_valid_time_1($element['to'], $value['from'], $required || !empty($value['from']), $from_valid, t('The end date should be on or after the start date.'));
}
if (in_array('to1', $values) && array_key_exists('to1', $value)) {
$this
->validate_valid_time_1($element['to1'], $value['from'], $required || !empty($value['from']), $from_valid, t('The departure date should be after the arrival date.'));
}
if (in_array('duration', $values) && array_key_exists('duration', $value)) {
$this
->validate_valid_duration($element['duration'], $value['duration'], $required || !empty($value['from']));
}
}