Про форму обратной связи

Некоторое время назад возникла мысль начать сбор всяких полезных (лично мне) твиков, хаков и хитростей Друпала в одну зловонную упорядоченную кучу. Я Друпал 6 имею в виду, пятый меня не очень интересует.

В частности, хотелось сделать отдельный модуль для, так сказать, "софт-твиков", то есть модификаций, которые можно сделать, не влезая в код ядра и/или сторонних модулей. Например, с помощью всяких alter-хуков, хука nodeapi и т.п.

Недавно начал делать такой модуль. Для разгону нацелился на форму обратной связи, которая на моем сайте, как известно, есть. Проблема с ней в том, что по независимым от модуля contact причинам поле "from", содержащее адрес отправителя письма, после отправки самым наглым образом заменяется адресом электрической почты самого сайта. Очевидным и самым простым решением является добавление изначального адреса в тело письма через hook_mail_alter.

//Добавление email отправителя в тело письма
function tweaks_mail_alter(&$message) {
  $sitemail = variable_get('site_mail',ini_get('sendmail_from'));
  //добавляем строчку только если письмо не служебное.
  if ($message['from'] != $sitemail) {
    //тело письма - это массив строк!
    $message['body'][] = "\n\n--\nВы можете ответить на это сообщение по адресу ".$message['from'];
  }
} //function tweaks_mail_alter

Начало модулю tweaks, можно сказать, положено. Хотя, конечно, жалко, что изменения в node.tpl.php, comment.tpl.php и так далее - к модулю не подошьешь.

Комментарии