list_allowed_values_setting_validate

Versions
mediamosa-21
list_allowed_values_setting_validate($element, &$form_state)

Element validate callback; check that the entered values are valid.

Code

modules/field/modules/list/list.module, line 148

<?php
function list_allowed_values_setting_validate($element, &$form_state) {
  $values = list_extract_allowed_values($element['#value'], $element['#list_field_type'] == 'list');
  $field_type = $element['#list_field_type'];

  // Check that keys are valid for the field type.
  foreach ($values as $key => $value) {
    if ($field_type == 'list_number' && !is_numeric($key)) {
      form_error($element, t('Allowed values list: each key must be a valid integer or decimal.'));
      break;
    }
    elseif ($field_type == 'list_text' && drupal_strlen($key) > 255) {
      form_error($element, t('Allowed values list: each key must be a string at most 255 characters long.'));
      break;
    }
    elseif ($field_type == 'list' && !preg_match('/^-?\d+$/', $key)) {
      form_error($element, t('Allowed values list: keys must be integers.'));
      break;
    }
    elseif ($field_type == 'list_boolean' && !in_array($key, array('0', '1'))) {
      form_error($element, t('Allowed values list: keys must be either 0 or 1.'));
      break;
    }
  }

  // Check that boolean fields get two values.
  if ($field_type == 'list_boolean' && count($values) != 2) {
    form_error($element, t('Allowed values list: two values are required.'));
  }
}
?>