function sms_validate_number in SMS Framework 7
Same name and namespace in other branches
- 5 sms.module \sms_validate_number()
- 6.2 sms.module \sms_validate_number()
- 6 sms.module \sms_validate_number()
Validates a phone number.
This function passes the number to active gateway for further validation if necessary. It also calls hook_sms_validate() so that other modules can implement custom validation.
Parameters
string $number: Comma-separated list of recipient numbers to validate. Passed by reference.
array $options: A list of additional options.
Return value
array An array of translated errors. Empty if no errors.
5 calls to sms_validate_number()
- SmsFrameworkWebTest::testNumberValidation in tests/sms.module.test 
- Tests basic number validation.
- SmsValidWebTest::testSmsValidValidate in modules/sms_valid/ sms_valid.test 
- Tests the sms_valid_validate() function.
- sms_send_form_validate in ./sms.module 
- Form validation handler for sms_send_form().
- sms_user_validate_number_element in modules/sms_user/ sms_user.module 
- Form element validation callback.
- sms_valid_admin_test_form_submit in modules/sms_valid/ sms_valid.admin.inc 
- Submit handler for sms_valid_admin_test_form()
File
- ./sms.module, line 706 
- The core of the SMS Framework. Provides gateway management and API for sending and receiving SMS messages.
Code
function sms_validate_number(&$number, $options = array()) {
  $errors = array();
  // Ensure there are actual numeric characters, but allow empty strings.
  if ($number !== '' && preg_replace('/[^0-9]/', '', $number) === '') {
    $errors[] = t('Invalid phone number provided.');
    // No need for further validation.
    return $errors;
  }
  // Allow other modules to provide number validation.
  $errors = module_invoke_all('sms_validate_number', $number, $options);
  // Allow the default (or the specified in $options) gateway to provide number
  // validation.
  if (isset($options['gateway'])) {
    $gateway = sms_gateways('gateway', $options['gateway']);
  }
  else {
    $gateway = sms_default_gateway();
  }
  if (isset($gateway['validate number']) && function_exists($gateway['validate number'])) {
    if ($error = $gateway['validate number']($number, $options)) {
      $errors += (array) $error;
    }
  }
  return $errors;
}