You are here

public function field_validation_words_validator::validate in Field Validation 7.2

Validate field.

Overrides field_validation_validator::validate

File

plugins/validator/field_validation_words_validator.inc, line 21

Class

field_validation_words_validator

Code

public function validate() {
  $settings = $this->rule->settings;
  if ($this->value != '') {
    $flag = TRUE;
    $count = count(explode(' ', trim(preg_replace('/\\s+/', ' ', str_replace('&nbsp;', ' ', strip_tags(str_replace('<', ' <', $this->value)))))));
    if (isset($settings['min']) && $settings['min'] != '') {
      $min = token_replace($settings['min'], array(
        $this
          ->get_token_type() => $this->entity,
      ));
      if ($count < $min) {
        $flag = FALSE;
      }
    }
    if (isset($settings['max']) && $settings['max'] != '') {
      $max = token_replace($settings['max'], array(
        $this
          ->get_token_type() => $this->entity,
      ));
      if ($count > $max) {
        $flag = FALSE;
      }
    }
    if (!$flag) {
      $token = array(
        '[min]' => isset($min) ? $min : '',
        '[max]' => isset($max) ? $max : '',
        '[count]' => $count,
      );
      $this
        ->set_error($token);
    }
  }
}