public function EventMeta::createDefaultEventMessages in RNG - Events and Registrations 3.x
Same name and namespace in other branches
- 8.2 src/EventMeta.php \Drupal\rng\EventMeta::createDefaultEventMessages()
Create messages for Event from Default messages for this Event Type.
Overrides EventMetaInterface::createDefaultEventMessages
File
- src/
EventMeta.php, line 664
Class
- EventMeta
- Meta event wrapper for RNG.
Namespace
Drupal\rngCode
public function createDefaultEventMessages() {
// Get Default messages for this Event type.
$default_messages = $this
->getEventType()
->getDefaultMessages();
if ($default_messages) {
foreach ($default_messages as $default_message) {
// Create Event Messages from Default Messages.
$template_collection = TemplateCollection::create();
$template_collection
->save();
$this->courier_manager
->addTemplates($template_collection);
$template_collection
->setOwner($this
->getEvent());
$template_collection
->save();
$templates = $template_collection
->getTemplates();
/** @var \Drupal\courier\EmailInterface $courier_email */
$courier_email = $templates[0];
$courier_email
->setSubject($default_message['subject']);
$courier_email
->setBody($default_message['body']);
$courier_email
->save();
$rule = Rule::create([
'event' => [
'entity' => $this
->getEvent(),
],
'trigger_id' => $default_message['trigger'],
]);
$rule
->setIsActive($default_message['status']);
$actionPlugin = $this->action_manager
->createInstance('rng_courier_message');
$configuration = $actionPlugin
->getConfiguration();
$configuration['template_collection'] = $template_collection
->id();
$action = RuleComponent::create([])
->setPluginId($actionPlugin
->getPluginId())
->setConfiguration($configuration)
->setType('action');
$rule
->addComponent($action);
$rule
->save();
// Handle custom date trigger.
if ($default_message['trigger'] == 'rng:custom:date') {
$rule_component = RuleComponent::create()
->setRule($rule)
->setType('condition')
->setPluginId('rng_rule_scheduler');
$rule_component
->save();
// Save the ID into config.
$rule_component
->setConfiguration([
'rng_rule_component' => $rule_component
->id(),
]);
$rule_component
->save();
}
}
}
}