You are here

function node_field_range_is_allowed_value in Node Field 7.2

Check node field for allowed values.

Parameters

array $node_field: Node field data array or node field id.

int $value: Value to check against node field max and min values.

1 call to node_field_range_is_allowed_value()
node_field_range_validation in modules/node_field_range/includes/node_field_range.api.inc
Validate node field in form.

File

modules/node_field_range/includes/node_field_range.api.inc, line 28
Api and helpers function for node_field_range module.

Code

function node_field_range_is_allowed_value(array $node_field, $value) {
  if (!is_array($node_field)) {
    $node_field = node_field_load_node_field($node_field);
  }
  $result = array(
    'allowed' => TRUE,
    'message' => NULL,
  );
  if (empty($node_field['settings']['range']) || empty($value)) {
    return $result;
  }
  $title = $node_field['title'];
  $range = $node_field['settings']['range'];
  switch ($node_field['type']) {
    case 'text':
      if (empty($range['min']) && empty($range['max'])) {
        return $result;
      }
      if (!empty($range['min']) && $value < $range['min']) {
        $result['allowed'] = FALSE;
        $result['message'] = t('Minimal value for @title field is @value', array(
          '@title' => $title,
          '@value' => $range['min'],
        ));
      }
      if (!empty($range['max']) && $value > $range['max']) {
        $result['allowed'] = FALSE;
        $result['message'] = t('Maximum value for @title field is @value', array(
          '@title' => $title,
          '@value' => $range['max'],
        ));
      }
      break;
  }
  return $result;
}