Задача — при удалении материала, указать причину удаления и уведомить об этом автора.
Решение:
/**
* Implements hook_form_FORM_ID_alter()
*/
function mymodule_form_node_delete_confirm_alter(&$form) {
$form['reason'] = array(
'#type' => 'textfield',
'#title' => 'Причина удаления',
);
array_unshift($form['#submit'], 'mymodule_form_node_delete_confirm_submit');
}
/**
* Custom submit callback for node_delete_confirm form
*/
function mymodule_form_node_delete_confirm_submit($form, &$form_state) {
if ($form_state['values']['confirm']) {
$node_author = user_load($form['#node']->uid);
drupal_mail('system', 'mail', $node_author->mail, language_default(), array(
'context' => array(
'subject' => 'Уведомление об удалении материала',
'message' => 'Ваш материал "' . $form['#node']->title . '" был удалён. Причина: ' . $form_state['values']['reason'],
)
));
}
}
Страница подтверждения удаления материала:
Написанное актуально для
Drupal 7
Похожие записи
- Модуль Auto-Dialog — показываем контент и формы в jQuery диалоге
- Как изменить сообщение, выводимое после создания материала
- Рассылка списка новых материалов за день/неделю/месяц с помощью Simplenews и Rules (способ 2)
- Рассылка списка новых материалов за день/неделю/месяц с помощью Simplenews (способ 1)
- Модуль References dialog — расширение возможностей виджета у полей типа entity reference
Комментарии
Спасибо! Отличная вещь. Еще бы так же сделать, когда снимаешь материал с публикации.
если снимать отключением соответствующей галки, то можно на #states красиво сделать
А если письмо о удалении отправляет Rules можно причину в шаблон письма подставить?
Функции добавил, mymodule заменил на название темы, но при удалении никакого поля не появилось. Расскажите как правильно использовать этот хук?
приведённый код никакого отношения к темам не имеет
Тогда подскажите пожалуйста как его использовать
http://xandeadx.ru/blog/drupal/256
Все получилось. Большое спасибо
Добавить комментарий