You are here

public function RulesI18nStringEvaluator::process in Rules 7.2

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
Internationalization rules integration.

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;
}