You are here

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

Validate callback for rooms_unit_type_form form.

See also

rooms_unit_type_form()

File

modules/rooms_unit/rooms_unit_type.admin.inc, line 197
RoomsUnit type editing UI.

Code

function rooms_unit_type_form_validate(&$form, &$form_state) {

  // Validate price field.
  if (!empty($form_state['values']['data']['base_price']) && !is_numeric($form_state['values']['data']['base_price'])) {
    form_set_error('data][base_price', t('%name: you must enter a numeric value for the price.', array(
      '%name' => t('Base price'),
    )));
  }

  // Validate room unit description.
  if (!empty($form_state['values']['data']['rooms_description_source'])) {
    $source_ref = explode(':', $form_state['values']['data']['rooms_description_source']);
    if (isset($source_ref[1])) {
      $node = node_load($source_ref[1]);
      if ($node === FALSE) {
        form_set_error('data][rooms_description_source', t('You must enter a valid node.'));
      }
    }
    else {
      $result = db_select('node', 'n')
        ->fields('n', array(
        'title',
        'nid',
      ))
        ->condition('title', $source_ref[0])
        ->condition('n.type', 'unit_description')
        ->range(0, 1)
        ->execute()
        ->fetchField();
      if (empty($result)) {
        form_set_error('data][rooms_description_source', t('You must enter a valid node.'));
      }
    }
  }
  entity_form_field_validate('rooms_unit_type', $form, $form_state);
}