You are here

function rooms_booking_availability_search_form_validate in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Validate callback form rooms_booking_availability_search_form form.

1 string reference to 'rooms_booking_availability_search_form_validate'
rooms_booking_availability_search_form_builder in modules/rooms_booking_manager/rooms_booking_manager.availability_search.inc
Form callback for rooms_booking_availability_search_form_builder.

File

modules/rooms_booking_manager/rooms_booking_manager.availability_search.inc, line 197
Contains the rooms_booking_availability_search_form builder.

Code

function rooms_booking_availability_search_form_validate(&$form, &$form_state) {
  list($start_date, $end_date) = rooms_form_input_get_start_end_dates($form_state);
  if (empty($start_date)) {
    return;
  }

  // This indicate to the rooms_form_start_end_dates_validate handler to
  // enable today greater validation.
  $form_state['today_greater_validation'] = TRUE;

  // Ensure start date is good based on the rooms_booking_start_date variable.
  $now = new DateTime();
  $diff1 = $now
    ->setTime(0, 0, 0)
    ->diff($start_date);
  $rooms_booking_start_date = variable_get('rooms_booking_start_date', 1);

  // Check the difference in number of days.
  if ($diff1->days < $rooms_booking_start_date && !user_access('make same-day bookings')) {
    form_set_error('rooms_date_range', t('Bookings must be made at least @count_days in advance.', array(
      '@count_days' => format_plural($rooms_booking_start_date, '1 day', '@count days'),
    )));
  }

  // Validate form elements provided by other availability search plugins.
  ctools_include('plugins');
  $filters = ctools_get_plugins('rooms_booking', 'availabilityagent_filter');
  foreach ($filters as $filter) {
    $class = ctools_plugin_get_class($filter, 'handler');
    $class::availabilitySearchFormValidate($form, $form_state);
  }
}