---
title: 'Про форму обратной связи'
url: 'https://graker.ru/news/2009/06/10/pro_formu_obratnoi_svyazi'
language: ru
type: post
author: 'Роман Грачев'
published: '2009-06-10T15:22:49+04:00'
updated: '2016-08-11T17:36:24+03:00'
categories:
  - Программирование
  - Друпальчики
---

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

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

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

Недавно начал делать такой модуль. Для разгону нацелился на форму обратной связи, которая на моем сайте, как известно, [есть](https://graker.ru/contact). Проблема с ней в том, что по независимым от модуля contact причинам поле "from", содержащее адрес отправителя письма, после отправки самым наглым образом заменяется адресом электрической почты самого сайта. Очевидным и самым простым решением является добавление изначального адреса в тело письма через [hook\_mail\_alter](http://api.drupal.org/api/function/hook_mail_alter/6).

```php
//Добавление 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 и так далее - к модулю не подошьешь.
