You are here

function rules_forms_condition_element_changed in Rules Forms Support 7.2

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

Condition: Form element value has changed.

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

File

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

Code

function rules_forms_condition_element_changed(RulesFormsElementWrapper $form_element, $form_state, $settings, $state, $element) {
  $form_id = $form['form_id']['#value'];
  $form_values = $form_state
    ->value();
  $form_values = $form_values['values'];
  if (isset($_SESSION['rules_forms_form_values'][$form_id]) && strpos($settings['data:select'], ':') !== FALSE) {

    // Get the build form values and the element name being validated.
    $element_name = substr($settings['data:select'], strpos($settings['data:select'], ':') + 1);
    $build_values = $_SESSION['rules_forms_form_values'][$form_id];

    // Ensure that form values are set. This will prevent the condition from
    // being evaluated during build.
    if (isset($build_values[$element_name]) && isset($form_state['values']) && isset($form_state['values'][$element_name])) {
      return $build_values[$element_name] !== $form_state['values'][$element_name];
    }
  }
  return FALSE;
}