Код отправляет уведомление о новых комментариях на ящик admin_mail@gmail.com
Drupal 8+
// MODULENAME.module
/**
* Implements hook_ENTITY_TYPE_insert(): comment.
*/
function MODULENAME_comment_insert(CommentInterface $comment): void {
if ($comment->getOwnerId() != 1) {
\Drupal::service('plugin.manager.mail')->mail(
'MODULENAME',
'new_comment',
'admin_mail@gmail.com',
\Drupal::languageManager()->getCurrentLanguage()->getId(),
['comment' => $comment]
);
}
}
/**
* Implements hook_mail().
*/
function MODULENAME_mail(string $key, array &$message, array $params): void {
if ($key == 'new_comment') {
$comment = $params['comment']; /** @var CommentInterface $comment */
$message['subject'] = "{$comment->getAuthorName()} оставил комментарий в теме {$comment->getCommentedEntity()->label()}";
$message['body'][] = $comment->get('comment_body')->value;
}
}
Drupal 7
// MODULENAME.module
/**
* Implements hook_comment_insert().
*/
function MODULENAME_comment_insert($comment) {
if ($comment->uid != 1) {
drupal_mail('MODULENAME', 'new_comment', 'admin_mail@gmail.com', language_default(), $comment);
}
}
/**
* Implements hook_mail().
*/
function MODULENAME_mail($key, &$message, $params) {
if ($key == 'new_comment') {
$node = node_load($params->nid);
$message['subject'] = $params->name . ' оставил комментарий в теме ' . $node->title;
$body .= trim($params->comment_body['und'][0]['value']) . "\n\n";
$body .= url('node/' . $params->nid, array('absolute' => true));
$message['body'][] = $body;
}
}
Написанное актуально для
Drupal 7, Drupal 8+
Похожие записи
- Как добавить базовое поле сущности (сохраняем User Agent комментатора)
- Уведомление администратора о новых комментариях (6)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Добавляем возможность использовать токены в адресе получателя контактной формы
- Добавляем на страницу управления отображением комментария поля "автор" и "дата создания"
Комментарии
А куда код-то вставлять?
И еще: подскажите, как реализован у вас блок "Последние комментарии?
http://xandeadx.ru/blog/drupal/256
http://xandeadx.ru/blog/drupal/346
О, спасибо) уже все написано, оказывается)
А разве нельзя через триггеры это все реализовать? Также никто не отменял модуль правил.
Хоть у кого то верный подход к программированию, а то все rules да trigger советуют.
Понравился вопрос Юрия, постоянно задаюсь таким же вопросом когда вижу php код. =)
Добавить комментарий