You are here

protected function RuleConditionSet::stateVariables in Conditional Rules 8

Same name and namespace in other branches
  1. 7 includes/rules_conditional.plugin.inc \RuleConditionSet::stateVariables()

File

includes/rules_conditional.plugin.inc, line 553
Rules plugin implementation.

Class

RuleConditionSet
Rule as condition set.

Code

protected function stateVariables($element = NULL) {
  $vars = $this
    ->availableVariables();
  if (isset($element) && $element !== $this->actions) {

    // Provide action variables for conditions.
    foreach ($this->actions->children as $child) {
      $vars += $child
        ->providesVariables();
    }

    // Provide condition state variables.
    foreach ($this->children as $child) {
      if ($child === $element) {
        break;
      }
      $vars += $child
        ->providesVariables();

      // Assert variable info from child conditions.
      if (!$child
        ->isNegated() && ($assertions = $child
        ->variableInfoAssertions())) {
        $vars = RulesData::addMetadataAssertions($vars, $assertions);
      }
    }
  }
  return $vars;
}