Index: mail.module =================================================================== --- mail.module (revision 10) +++ mail.module (working copy) @@ -205,29 +205,47 @@ * @return * A string containing the entire HTML page. */ -function theme_mail_message($node) { +function theme_mail_message($node, $account) { global $user; - $output = "\n"; - $output .= ''; - $output .= ''; - $output .= ' '. $node->title .''; - $output .= drupal_get_html_head(); - $output .= theme_get_styles(); - - $output .= ''; - $output .= ''; - $output .= '
'; - - $output .= "\n\n"; - $output .= '

' . t('Sent by %name from %site.', array('%name' => $user->name, '%name-url' => url("user/$user->uid", NULL, NULL, TRUE), '%site' => variable_get('site_name', 'drupal'))) . '

'; - $output .= '

' . t('If you don\'t wish to receive such e-mails, you can change your account settings.', array('%url' => url('user/' . $node->uid, NULL, NULL, TRUE))) . '

'; - $output .= node_view($node, FALSE, FALSE, FALSE); - $output .= "\n\n"; - - $output .= '
'; - $output .= theme_closure(); - $output .= ''; - + $output = ''; + + // first theme the node body + $message = node_invoke($node, 'view_mail', $account, $node->mail_format); + if (!$message) { + $message = node_view($node, FALSE, FALSE, FALSE); + } + $variables = array('%username' => $account->name, '%site' => variable_get('site_name', 'drupal'), '%uri' => $base_url, '%uri_brief' => substr($base_url, strlen('http://')), '%mailto' => $account->mail, '%date' => format_date(time()), '%login_uri' => url('user/login', NULL, NULL, TRUE), '%edit_uri' => url('user/edit', NULL, NULL, TRUE)); + $message = strtr($message, $variables); + + // now theme the entire mail + if ($node->mail_format == 'plain') { + $output .= t("Sent by %name from %site, regarding <%url>.", array('%name' => $user->name, '%site' => variable_get('site_name', 'drupal'), '%title' => $node->title, '%url' => url("node/$node->nid", NULL, NULL, TRUE))) . "\n"; + $output .= t('If you don\'t wish to receive such e-mails, you can change your account settings: <%url>.', array('%url' => url('user/' . $account->uid .'/edit', NULL, NULL, TRUE))) . "\n"; + $output .= "---\n\n"; + $output .= strip_tags($message); + } + else { + $output .= "\n"; + $output .= ''; + $output .= ''; + $output .= ' '. $node->title .''; + $output .= drupal_get_html_head(); + $output .= theme_get_styles(); + + $output .= ''; + $output .= ''; + $output .= '
'; + + $output .= "\n\n"; + $output .= '

' . t('Sent by %name from %site, regarding %node-title.', array('%name' => $user->name, '%name-url' => url("user/$user->uid", NULL, NULL, TRUE), '%site' => variable_get('site_name', 'drupal'), '%node-url' => url("node/$node->nid", NULL, NULL, TRUE), '%node-title' => $node->title)) . '

'; + $output .= '

' . t('If you don\'t wish to receive such e-mails, you can change your account settings.', array('%url' => url('user/' . $account->uid .'/edit', NULL, NULL, TRUE))) . '

'; + $output .= $message; + $output .= "\n\n"; + + $output .= '
'; + $output .= theme_closure(); + $output .= ''; + } return $output; } @@ -257,14 +275,9 @@ } if($account->mail) { $node->to = $account->mail; - $variables = array('%username' => $account->name, '%site' => variable_get('site_name', 'drupal'), '%uri' => $base_url, '%uri_brief' => substr($base_url, strlen('http://')), '%mailto' => $account->mail, '%date' => format_date(time()), '%login_uri' => url('user/login', NULL, NULL, TRUE), '%edit_uri' => url('user/edit', NULL, NULL, TRUE)); - $message = strtr(node_view($node, FALSE, FALSE, FALSE), $variables); - if ($node->mail_format == 'plain') { - $node->message = strip_tags($message); - } - else { - $node->message = theme('mail_message', $node); - } + + $node->message = theme('mail_message', $node, $account); + if(!mail_send($node)) { $success = false; }