Drupal: изменить шаблон электронной почты из контактной формы - PullRequest
1 голос
/ 31 июля 2010

Когда я отправляю сообщение в моей контактной форме в Drupal 6.x, я получаю следующее сообщение в верхней части каждого сообщения:

[Имя] отправлял сообщение, используя контактную форму на [www.mysite.com / contact]

Я хочу удалить это сообщение.Оглядываясь вокруг, я обнаружил, что это происходит из contact.module здесь:

$message['body'][] = t("!name sent a message using the contact form at !form.", array('!name' => $params['name'], '!form' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language))), $language->language);

Я провел небольшое исследование, и кажется, что мне нужно создать собственный модуль с функцией hook_mail_alter ()отредактировать contact.module.Когда дело доходит до этого, я немного теряюсь.Может ли кто-нибудь любезно провести меня через шаги для выполнения задачи?

Большое спасибо.

1 Ответ

2 голосов
/ 31 июля 2010

Я недавно сделал что-то подобное. Вот шаблон, который вы можете использовать, чтобы получить то, что вам нужно. Большая часть из контактного модуля. Код ниже взят из Drupal 7, но должен работать как в Drupal 6.

/**
 * Implementation of hook_mail_alter().
 */
function modulename_mail_alter(&$message) {
  if ($message['id'] == 'contact_page_mail') {
    $language = $message['language'];
    $params = $message['params'];
    $variables = array(
      '!form-url' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language)),
      '!sender-name' => format_username($params['sender']),
      '!sender-url' => $params['sender']->uid ? url('user/' . $params['sender']->uid, array('absolute' => TRUE, 'language' => $language)) : $params['sender']->mail,
    );
    $message['body'] = array();
    $message['body'][] = t("Your custom message with variables", $variables, array('langcode' => $language->language));
    $message['body'][] = $params['message']; // Append the user's message/
  }
}
...