/** * Constructs a new class instance. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param array $plugin_definition * The plugin implementation definition. * @param \Drupal\rules\Engine\ExpressionManagerInterface $expression_manager * The rules expression plugin manager. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, ExpressionManagerInterface $expression_manager) { parent::__construct($configuration, $plugin_id, $plugin_definition); $configuration += ['conditions' => [], 'actions' => []]; // Per default the outer condition container of a rule is initialized as // conjunction (AND), meaning that all conditions in it must evaluate to // TRUE to fire the actions. $this->conditions = $expression_manager->createInstance('rules_and', $configuration['conditions']); $this->conditions->setRoot($this->getRoot()); $this->actions = $expression_manager->createInstance('rules_action_set', $configuration['actions']); $this->actions->setRoot($this->getRoot()); }
/** * PHP magic __clone function. */ public function __clone() { $this->actions = clone $this->actions; $this->actions->setRoot($this->getRoot()); $this->conditions = clone $this->conditions; $this->conditions->setRoot($this->getRoot()); }