You are here

public function property_validation_match_field_validator::validate in Field Validation 7.2

Validate property.

Overrides property_validation_validator::validate

File

property_validation/plugins/validator/property_validation_match_field_validator.inc, line 21

Class

property_validation_match_field_validator

Code

public function validate() {
  $settings = $this->rule->settings;
  if ($this->value != '') {
    $flag = TRUE;
    $query = new EntityFieldQuery();
    if (!empty($settings['entity_type'])) {
      $query
        ->entityCondition('entity_type', $settings['entity_type']);
    }
    if (!empty($settings['bundle'])) {
      $query
        ->entityCondition('bundle', $settings['bundle']);
    }
    if (!empty($settings['field_name']) && !empty($settings['column'])) {
      $query
        ->fieldCondition($settings['field_name'], $settings['column'], $this->value);
    }

    // Always bypass all access checkings.
    $query
      ->addMetaData('account', user_load(1));
    $flag = (bool) $query
      ->range(0, 1)
      ->count()
      ->execute();
    if (!empty($settings['reverse'])) {
      $flag = $flag ? FALSE : TRUE;
    }
    if (!$flag) {
      $this
        ->set_error();
    }
  }
}