42 lines
1.4 KiB
Twig
42 lines
1.4 KiB
Twig
/**
|
|
* Implements hook_mail().
|
|
*/
|
|
function {{ machine_name }}_mail($key, &$message, $params) {
|
|
$account = $params['account'];
|
|
$context = $params['context'];
|
|
$variables = [
|
|
'%site_name' => \Drupal::config('system.site')->get('name'),
|
|
'%username' => $account->getDisplayName(),
|
|
];
|
|
if ($context['hook'] == 'taxonomy') {
|
|
$entity = $params['entity'];
|
|
$vocabulary = Vocabulary::load($entity->id());
|
|
$variables += [
|
|
'%term_name' => $entity->name,
|
|
'%term_description' => $entity->description,
|
|
'%term_id' => $entity->id(),
|
|
'%vocabulary_name' => $vocabulary->label(),
|
|
'%vocabulary_description' => $vocabulary->getDescription(),
|
|
'%vocabulary_id' => $vocabulary->id(),
|
|
];
|
|
}
|
|
|
|
// Node-based variable translation is only available if we have a node.
|
|
if (isset($params['node'])) {
|
|
/** @var \Drupal\node\NodeInterface $node */
|
|
$node = $params['node'];
|
|
$variables += [
|
|
'%uid' => $node->getOwnerId(),
|
|
'%url' => $node->url('canonical', ['absolute' => TRUE]),
|
|
'%node_type' => node_get_type_label($node),
|
|
'%title' => $node->getTitle(),
|
|
'%teaser' => $node->teaser,
|
|
'%body' => $node->body,
|
|
];
|
|
}
|
|
$subject = strtr($context['subject'], $variables);
|
|
$body = strtr($context['message'], $variables);
|
|
$message['subject'] .= str_replace(["\r", "\n"], '', $subject);
|
|
$message['body'][] = MailFormatHelper::htmlToText($body);
|
|
}
|