function RulesContainerPlugin::executeByArgs
Executes container with the given arguments.
Condition containers just return a boolean while action containers return the configured provided variables as an array of variables.
Overrides RulesPlugin::executeByArgs
1 method overrides RulesContainerPlugin::executeByArgs()
- RulesEventSet::executeByArgs in includes/
rules.plugins.inc - Executes container with the given arguments.
File
-
includes/
rules.core.inc, line 2346
Class
- RulesContainerPlugin
- Base class for ContainerPlugins like Rules, Logical Operations or Loops.
Code
public function executeByArgs($args = array()) {
$replacements = array(
'%label' => $this->label(),
'@plugin' => $this->itemName,
);
rules_log('Executing @plugin %label.', $replacements, RulesLog::INFO, $this, TRUE);
$this->processSettings();
$state = $this->setUpState($args);
// Handle recursion prevention.
if ($state->isBlocked($this)) {
return rules_log('Not evaluating @plugin %label to prevent recursion.', array(
'%label' => $this->label(),
'@plugin' => $this->plugin(),
), RulesLog::INFO);
}
// Block the config to prevent any future recursion.
$state->block($this);
module_invoke_all('rules_config_execute', $this);
$result = $this->evaluate($state);
$return = $this->returnVariables($state, $result);
$state->unblock($this);
$state->cleanUp();
rules_log('Finished executing of @plugin %label.', $replacements, RulesLog::INFO, $this, FALSE);
return $return;
}