You are here

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

Checks that the booking parameters given are valid. This is mainly used to clean up values that came through the URL and are set in $_GET.

Parameters

int $booking_units: The amount of booking units

array $booking_info: Booking info supplied

Return value

array An array of booking parameters

2 calls to rooms_booking_manager_retrieve_booking_parameters()
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.
rooms_booking_manager_results_page in modules/rooms_booking_manager/rooms_booking_manager.module
Constructs the booking results page following an availability search.

File

modules/rooms_booking_manager/rooms_booking_manager.module, line 674
Rooms Booking Manager brings together all the pieces required to find a room and book it - including the DrupalCommerce integration

Code

function rooms_booking_manager_retrieve_booking_parameters($booking_units, $booking_info) {
  $booking_units = check_plain($booking_units);
  $booking_parameters = array();
  if (variable_get('rooms_presentation_style', ROOMS_PER_TYPE) == ROOMS_INDIVIDUAL) {
    if (variable_get('rooms_display_children', ROOMS_DISPLAY_CHILDREN_NO) == ROOMS_DISPLAY_CHILDREN) {
      if (isset($booking_info['rooms_group_size1']) && isset($booking_info['rooms_children1'])) {
        $booking_parameters[1]['adults'] = check_plain($booking_info['rooms_group_size1']);
        $booking_parameters[1]['children'] = check_plain($booking_info['rooms_children1']);
      }
      else {
        $booking_parameters = 0;
      }
    }
    else {
      if (isset($booking_info['rooms_group_size1'])) {
        $booking_parameters[1]['adults'] = check_plain($booking_info['rooms_group_size1']);
      }
      else {
        $booking_parameters = 0;
      }
    }

    // If the booking parameter data was not valid invalidate the data.
    if ($booking_parameters == 0) {
      return FALSE;
    }
    else {
      return $booking_parameters;
    }
  }
  else {

    // Given a certain number of units lets hunt in $booking_info for them.
    for ($i = 1; $i <= $booking_units; $i++) {

      // If not data has invalidated booking parameters yet.
      if ($booking_parameters != 0) {
        if (variable_get('rooms_display_children', ROOMS_DISPLAY_CHILDREN_NO) == ROOMS_DISPLAY_CHILDREN) {
          if (isset($booking_info['rooms_group_size' . $i]) && isset($booking_info['rooms_children' . $i])) {
            $booking_parameters[$i]['adults'] = check_plain($booking_info['rooms_group_size' . $i]);
            $booking_parameters[$i]['children'] = check_plain($booking_info['rooms_children' . $i]);
          }
          else {
            $booking_parameters = 0;
          }
        }
        else {
          if (isset($booking_info['rooms_group_size' . $i])) {
            $booking_parameters[$i]['adults'] = check_plain($booking_info['rooms_group_size' . $i]);
          }
          else {
            $booking_parameters = 0;
          }
        }
      }
    }

    // If the booking parameter data was not valid or did not correspond to the
    // number of units invalidate the data.
    if ($booking_parameters == 0 || count($booking_parameters) < $booking_units) {
      return FALSE;
    }
    else {
      return $booking_parameters;
    }
  }
}