Oto inne podejście. (Kod jest dostępny w tym obszarze izolowanym ).
nodemail.info
name = Nodemail
description = Sends node e-mails.
core = 7.x
nodemail.install ”
<?php
function nodemail_enable() {
$current = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
$addition = array('nodemail' => 'NodemailMailSystem');
variable_set('mail_system', array_merge($current, $addition));
}
function nodemail_disable() {
$mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
unset($mail_system['nodemail']);
variable_set('mail_system', $mail_system);
}
nodemail.module
<?php
class NodemailMailSystem extends DefaultMailSystem {
public function format(array $message) {
$message['body'] = implode("\n\n", $message['body']);
$message['body'] = drupal_wrap_mail($message['body']);
return $message;
}
}
function nodemail_mail($key, &$message, $params) {
switch ($key) {
case 'node_mail':
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8;';
$message['subject'] = $params['subject'];
$message['body'][] = $params['body'];
break;
}
}
function nodemail_node_insert($node) {
if ($node->type == 'mycontenttype') {
$params['subject'] = 'Node "' . $node->title . '" was created';
$params['body'] = render(node_view($node));
$to = variable_get('site_mail', '');
$from = 'noreply@example.com';
$lang = language_default();
drupal_mail('nodemail', 'node_mail', $to, $lang, $params, $from);
}
}
Zawartość pliku instalacyjnego i klasa NodemailMailSystem są używane, aby umożliwić temu modułowi wysyłanie wiadomości e-mail w formacie HTML. Dwie pozostałe funkcje to implementacje hook_mail () i hook_node_insert (), które zajmują się wysyłaniem wiadomości e-mail po utworzeniu węzła mycontenttype
. Jedną rzeczą, na którą musisz zwrócić uwagę jest to, że Drupal użyje pliku szablonu węzła kompozycji, który jest używany na stronach tworzenia węzłów (lub rdzeń node.tpl.php, jeśli motyw go nie ma) dla widoku węzła . Możesz także sprawdzić funkcje tutaj node_view () i drupal_mail () . To wszystko powinno działać z podstawową funkcjonalnością Drupala 7 (nie są wymagane żadne moduły).