You are here

public function field_validation_url_validator::validate in Field Validation 7.2

Validate field.

Overrides field_validation_validator::validate

File

plugins/validator/field_validation_url_validator.inc, line 21

Class

field_validation_url_validator

Code

public function validate() {
  $settings = $this->rule->settings;
  if ($this->value != '') {
    $flag = FALSE;
    if (empty($settings['external']) && empty($settings['internal'])) {
      $flag = TRUE;
    }
    if (!empty($settings['external'])) {
      $flag = valid_url($this->value, TRUE);
    }
    if (!$flag && !empty($settings['internal'])) {
      $normal_path = drupal_get_normal_path($this->value);
      if (!url_is_external($normal_path)) {
        $parsed_link = parse_url($normal_path);
        if ($normal_path != $parsed_link['path']) {
          $normal_path = $parsed_link['path'];
        }
        $flag = drupal_valid_path($normal_path);
      }
    }
    if (!$flag) {
      $this
        ->set_error();
    }
  }
}