function RulesI18nStringEvaluator::process

Prepare the i18n-context string.

We have to use process() here instead of evaluate() because we need more context than evaluate() provides.

Overrides RulesDataInputEvaluator::process

File

rules_i18n/rules_i18n.rules.inc, line 156

Class

RulesI18nStringEvaluator
A class implementing a rules input evaluator processing tokens.

Code

public function process($value, $info, RulesState $state, RulesPlugin $element, $options = NULL) {
  $options = isset($options) ? $options : $this->getEvaluatorOptions($info, $state, $element);
  $value = isset($this->processor) ? $this->processor
    ->process($value, $info, $state, $element, $options) : $value;
  if (isset($element->root()->name)) {
    $config_name = $element->root()->name;
    $id = $element->elementId();
    $name = $info['#name'];
    $options['i18n context'] = "rules:rules_config:{$config_name}:{$id}:{$name}";
    return $this->evaluate($value, $options, $state);
  }
  return $value;
}