public function BusinessRulesItemPluginBase::processTokens in Business Rules 2.x
Same name and namespace in other branches
- 8 src/Plugin/BusinessRulesItemPluginBase.php \Drupal\business_rules\Plugin\BusinessRulesItemPluginBase::processTokens()
Process the tokens on the settings property for the item.
Parameters
\Drupal\business_rules\ItemInterface $item: The Business Rules item.
\Drupal\business_rules\Events\BusinessRulesEvent $event: The BusinessRulesEvent that triggered the processor.
Overrides BusinessRulesItemPluginInterface::processTokens
File
- src/
Plugin/ BusinessRulesItemPluginBase.php, line 179
Class
- BusinessRulesItemPluginBase
- Base Class for Business rules plugins.
Namespace
Drupal\business_rules\PluginCode
public function processTokens(ItemInterface &$item, BusinessRulesEvent $event) {
$settings = $item
->getSettings();
// Get the context entity to pass to token processor.
try {
$entity_type = $event
->getArgument('entity_type_id');
$entity = $event
->getArgument('entity');
$context = [
$entity_type => $entity,
];
} catch (\InvalidArgumentException $e) {
$context = [];
}
foreach ($settings as $key => $setting) {
if (is_string($setting)) {
$variables = $event
->getArgument('variables');
$setting = $this
->processVariables($setting, $variables);
$settings[$key] = $this->util->token
->replace($setting, $context, [
'clear' => TRUE,
]);
}
elseif (is_array($setting)) {
$this
->processTokenArraySetting($settings[$key], $context, $event);
}
}
foreach ($settings as $key => $setting) {
$item
->setSetting($key, $setting);
}
}