public function RulesListConditionsAny::evaluate in Rules List Conditions 7
Evaluate the element on a given rules evaluation state.
Overrides RulesPlugin::evaluate
File
- includes/
rules_list_conditions.plugins.inc, line 28
Class
- RulesListConditionsAny
- An any loop.
Code
public function evaluate(RulesState $state) {
try {
$param_info = $this
->pluginParameterInfo();
$list = $this
->getArgument('list', $param_info['list'], $state);
if (isset($this->settings['list:select'])) {
rules_log('Looping over the list items of %sel (ANY)', array(
'%sel' => $this->settings['list:select'],
), RulesLog::INFO, $this);
}
foreach ($list as $key => $item) {
$local = $this
->setListVar($state, $item);
foreach ($this->children as $condition) {
if ($condition
->evaluate($local)) {
rules_log($this
->label() . ' evaluated to TRUE.');
return !$this->negate;
}
}
}
rules_log($this
->label() . 'ANY evaluated to FALSE.');
return $this->negate;
} catch (RulesEvaluationException $e) {
$this
->logExn($e);
}
}