You are here

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

2 calls to rooms_booking_handler_unit_filter::validate_unit_strings()
rooms_booking_handler_unit_filter::exposed_validate in modules/rooms_booking/views/rooms_booking_handler_unit_filter.inc
Validate the exposed handler form.
rooms_booking_handler_unit_filter::value_validate in modules/rooms_booking/views/rooms_booking_handler_unit_filter.inc
Validate the options form.

File

modules/rooms_booking/views/rooms_booking_handler_unit_filter.inc, line 181

Class

rooms_booking_handler_unit_filter
@file

Code

function validate_unit_strings(&$form, $values) {
  if (empty($values)) {
    return array();
  }
  $units = array();
  $names = array();
  $missing = array();
  foreach ($values as $value) {
    $missing[strtolower($value)] = TRUE;
    $names[] = $value;
  }
  if (!$names) {
    return FALSE;
  }
  $query = db_select('rooms_units', 't');
  $query
    ->fields('t');
  $query
    ->condition('t.name', $names);
  $result = $query
    ->execute();
  foreach ($result as $unit) {
    unset($missing[strtolower($unit->name)]);
    $units[] = $unit->unit_id;
  }
  if ($missing && !empty($this->options['error_message'])) {
    form_error($form, format_plural(count($missing), 'Unable to find unit: @units', 'Unable to find units: @units', array(
      '@units' => implode(', ', array_keys($missing)),
    )));
  }
  elseif ($missing && empty($this->options['error_message'])) {
    $units = array(
      0,
    );
  }
  return $units;
}