public function RulesListConditionsAll::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 93
Class
- RulesListConditionsAll
- An all 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 (ALL)', 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() . ' evaluated to FALSE.');
return !$this->negate;
} catch (RulesEvaluationException $e) {
$this
->logExn($e);
}
}