Оповещение о новом комментарии в Drupal

Модуль комментариев в Drupal — это не паханное поле для настройки, темизации и программирования. Ситуация с ним не меняется, от версии к версии ядра он остаётся обделенным вниманием разработчиков. Одна из задач — настроить оповещения модератору или админу сайта о новых комментариях, требующих модерации.

В сети есть близкое по сути решение с настройкой модуля trigger, который позволяет настроить оповещение по e-mail при сохранении комментария. Но нельзя при этом указать статус записи (требует ли комментарий модерации), да и активировать целый модуль для таких целей как то не «айс». В общем решение не для программиста, а для системного администратора.

А нужно всего то лишь зацепить за hook_comment_insert.

Буквально 3 строки кода цепляют нас за нужное событие и активируют отправку письма. В примере я использую «хелпер» myLib::dispatcher(…) для отправки писем. Он нужен для отправки писем сразу нескольким адресатам, если они перечислены в строке через запятую или точку с запятой.

В самом простом случае можно обойтись и без хелпера, просто выполнив drupal_mail(…). Я пользуюсь почти во всех проектах небольшой коллекцией самописных хелперов, вот решил поделиться одним из них :).

Задача уже решена, есть лишь практический смысл показать шаблон для функции отправки писем, чтобы вам было с чего начинать. Там реализована отправка писем с ключом ($key) — new-comment.

Функция рабочая, можно даже ничего и не менять. Она генерирует письма в формате HTML при каждом случае нового комментария, требующего модерации. Но для отправки письма в формате HTML в Drupal 7 нужно сделать еще кое-какие манипуляции. Как это сделать читайте в статье — отправка HTML писем из Drupal 7.

Написать комментарий

Мало букафф? Читайте есчо !

Меняем сортировку комментариев в Drupal 7 без views

Декабрь 2, 2016 г.

Комментарии в Drupal выводятся от старых к новым. Т.е. чтобы увидеть последний (свежий) комментарий нужно идти на самую последнюю страницу (если комментарии разбились на несколько страниц) в самый конец списка комментариев. Как изменить порядок вывода ...

Читать

Как убрать инфо о текстовых форматах в комментариях Drupal?

Ноябрь 13, 2016 г.

Речь идет о выводе дополнительной информации в форме комментариев после основного текстового поля - "формат текста". Поле это совершенно не нужно пользователям ...

Читать

 

Комментарии к «Оповещение о новом комментарии в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Оповещение о новом комментарии в Drupal”

  1. Виктор:

    Спасибо за статью. Попробовал на одном сайте, организовал в виде небольшого модуля. Проверил — на указанный ящик падает сообщение о новом комментарии. Только не смог завести работу кода для нескольких почтовых ящиков. В статье сказано «для отправки писем сразу нескольким адресатам, если они перечислены в строке через запятую или точку с запятой.» Пробовал в переменную $manag_email хука «hook_comment_insert»дописывать через запятую/точку с запятой еще один email — в этом случае вообще ничего не работает. С одной почтой работает. Почему может не работать с двумя ящиками? Спасибо.

    • Для отправки по нескольким e-mail используется функция myLib::dispatcher. Специально для этого написана. Она разбивает строку со списком адресов, разделенных запятыми или тчк. с запятой и вызывает drupal_mail необходимое кол-во раз.

      Чтобы разобраться почему не работает, попробуйте посмотреть какой в итоге формируется в массиве $mailA список адресов.