You are here

function rules_forms_condition_element_value in Rules Forms Support 7.2

Same name and namespace in other branches
  1. 7 includes/rules_forms.eval.inc \rules_forms_condition_element_value()

Condition: Form element has value.

1 string reference to 'rules_forms_condition_element_value'
rules_forms_rules_condition_info in ./rules_forms.rules.inc
Implements hook_rules_condition_info().

File

includes/rules_forms.eval.inc, line 27
Evaluation functions for Rules Forms module.

Code

function rules_forms_condition_element_value($wrapper, $value, $regex, $settings, $state, $element) {
  if ($wrapper instanceof RulesFormsElementWrapper) {
    $element_value = $wrapper
      ->getElementValue();

    // Perform the comparison with a regular expression if necessary.
    if ($regex) {

      // Allow multiple regular expressions to be run, one on each line.
      // Return FALSE immediately if an expression fails.
      $lines = explode("\r\n", $value);
      foreach ($lines as $line) {
        $result = preg_match($value, $element_value) == 1;
        if ($result === FALSE) {
          return FALSE;
        }
      }
      return TRUE;
    }

    // Multiple values come in as array.
    if (is_array($element_value)) {
      $lines = explode("\r\n", $value);
      return rules_forms_equal_array_values($lines, $element_value);
    }
    return $element_value === $value;
  }
  else {
    return $wrapper === $value;
  }
}