diff --git a/field_default_token.module b/field_default_token.module index 812e408..4a65b56 100644 --- a/field_default_token.module +++ b/field_default_token.module @@ -215,9 +215,13 @@ function field_default_token_enlarge_max_length(&$element) { * Root form element. */ function field_default_token_fix_number_validation(&$element) { + $number_callbacks = array( + 'number_field_widget_validate', + 'bigint_field_widget_validate', + ); if (!empty($element['#element_validate'])) { foreach ($element['#element_validate'] as &$callback) { - if ($callback === 'number_field_widget_validate') { + if (in_array($callback, $number_callbacks)) { $callback = 'field_default_token_number_field_widget_validate'; } } @@ -351,10 +355,18 @@ function field_default_token_field_ui_field_edit_form_validate($form, &$form_sta * Replacement for number_field_widget_validate(). */ function field_default_token_number_field_widget_validate($element, &$form_state) { + $field_info = field_info_field($element['#field_name']); + switch ($field_info['type']) { + case 'number_bigint': + $callback = 'bigint_field_widget_validate'; + break; + default: + $callback = 'number_field_widget_validate'; + } $value = $element['#value']; if (strpos($value, '[') !== FALSE) { // Token in default value, do not validate. return; } - number_field_widget_validate($element, $form_state); + $callback($element, $form_state); }