You are here

function telephone_validation_element in Telephone Validation 7

Telephone element validation.

1 string reference to 'telephone_validation_element'
telephone_validation_field_widget_telephone_default_form_alter in ./telephone_validation.module
Implements hook_field_widget_WIDGET_TYPE_form_alter().

File

./telephone_validation.module, line 110
Validate phone number.

Code

function telephone_validation_element($element, &$form_state) {
  $value = $element['#value'];

  // Do validation only if value is not empty.
  if (!empty($value)) {
    $instance = field_info_instance($element['#entity_type'], $element['#field_name'], $element['#bundle']);
    $settings = _telephone_validation_get_instance_settings($instance);
    try {
      $number = _telephone_validation($value, $settings);
    } catch (Exception $e) {
      form_error($element, t('%name value is invalid.', array(
        '%name' => $instance['label'],
      )));
      return FALSE;
    }

    // If number looks ok, use google libphonenumber library to set correct
    // output format.
    $phone_util = \libphonenumber\PhoneNumberUtil::getInstance();

    // Change field value and store it in database in unified format.
    form_set_value($element, $phone_util
      ->format($number, $settings['store_format']), $form_state);
  }
}