public function field_validation_equal_values_validator::validate in Field Validation 7.2
Validate field.
Overrides field_validation_validator::validate
File
- plugins/
validator/ field_validation_equal_values_validator.inc, line 21
Class
Code
public function validate() {
$flag = FALSE;
$group_name = $this->rule->settings['data'];
ctools_include('export');
$other_group_rules = ctools_export_load_object('field_validation_rule', 'conditions', array(
'entity_type' => $this->rule->entity_type,
'bundle' => $this->rule->bundle,
'validator' => $this->rule->validator,
));
foreach ($this->items as $delta => $item) {
foreach ($other_group_rules as $other_group_rule) {
// Skip when do not have the same group name, rule is disabled, equal to current rule.
if ($other_group_rule->settings['data'] != $group_name || !empty($other_group_rule->disabled) || $other_group_rule->name == $this->rule->name) {
continue;
}
if (isset($this->entity->{$other_group_rule->field_name}[$this->langcode][$delta])) {
if ($item[$this->rule->col] == $this->entity->{$other_group_rule->field_name}[$this->langcode][$delta][$other_group_rule->col]) {
}
else {
$flag = TRUE;
break;
}
}
else {
$flag = TRUE;
break;
}
}
if ($flag) {
break;
}
}
if ($flag) {
$this
->set_error();
}
$break = TRUE;
return $break;
}