- accordion(1)
- active-trail(1)
- ajax(1)
- angular(1)
- apache(3)
- bash(4)
- block(2)
- browsers(1)
- button styles(1)
- checkboxes(1)
- code key(1)
- compress(1)
- console(4)
- css(1)
- ctools(1)
- date(1)
- db_query(2)
- db_select(2)
- debian(1)
- dom function(1)
- drag and drop(1)
- drupal 6(3)
- drupal 7(3)
- drupal functions(6)
- drupal_goto()(1)
- drupal_mail(1)
- errors(1)
- eslint(1)
- fancybox(1)
- fedora(1)
- firefox(2)
- firefox addons(1)
- firefox profiles(1)
- form(1)
- form api(5)
- format_date(1)
- git(1)
- hooks(2)
- hook_mail(1)
- hook_theme(1)
- hotkey(1)
- httpd(1)
- husky(1)
- ie(2)
- javascript(2)
- jquery(7)
- jquery plugin(2)
- jquery regex(1)
- js templates(1)
- kb(1)
- like button(1)
- link(1)
- linux(4)
- linux commands(2)
- list(1)
- list styles(1)
- markup(1)
- menu(3)
- mobile(1)
- modal(2)
- module develop(2)
- modules(1)
- monorepo(1)
- mootools(1)
- mysql(2)
- node_save(1)
- opacity(1)
- opensuse(5)
- opera mini(1)
- padStart(1)
- page.tpl.php(1)
- password hash(1)
- patch(1)
- pdf(1)
- python(1)
- radiobuttons(1)
- reg_ex(2)
- sass(1)
- scripts(1)
- search form(1)
- selenium(1)
- share button(1)
- sms(1)
- ssh(2)
- styles(4)
- switch case(1)
- table style(1)
- tar(1)
- taxonomy(1)
- taxonomy menu(1)
- templates(1)
- theme(4)
- toggle(2)
- touchpad(1)
- tray(1)
- trigger(1)
- typescript(2)
- typescript-eslint(1)
- ubuntu(3)
- usefull function(1)
- views(1)
- virtual hosts(2)
- virtualbox(2)
- vmware(1)
- webdriver(1)
- youtube(1)
- кроссбраузерность(1)
Отправка писем из модуля
Для отправки писем из нашего абстрактного модуля нам понадобится реализация, hook_mail.
hook_mail($key, &$message, $params),
где
$message = array(
'id' => $module . '_' . $key,
'module' => $module, //название нашего модуля
'key' => $key, //идентификатор отправки
'to' => $to, /*адрес отправителя, должен соответствовать RFC 2822 (например:
user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>)*/
'from' => isset($from) ? $from : $default_from, //адрес отправителя, по умолчанию адрес сайта
'language' => $language,
'params' => $params, //массив параметров для построения письма
'subject' => '', //тема письма
'body' => array(), //массив строк тела письма
);
$language - язык,
$params - массив параметров, для построения письма.
'id' => $module . '_' . $key,
'module' => $module, //название нашего модуля
'key' => $key, //идентификатор отправки
'to' => $to, /*адрес отправителя, должен соответствовать RFC 2822 (например:
user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>)*/
'from' => isset($from) ? $from : $default_from, //адрес отправителя, по умолчанию адрес сайта
'language' => $language,
'params' => $params, //массив параметров для построения письма
'subject' => '', //тема письма
'body' => array(), //массив строк тела письма
);
$language - язык,
$params - массив параметров, для построения письма.
Вызываться наш хук будет через функцию drupal_mail:
drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE)
Рассмотрим на примере модуля типа обратная связь:
//$data['mail'] = 'example@yandex.ru'
//$data['subject'] = 'Обратная связь. Поступило новое сообщение'
//$data['body'] = 'Тут был Вася'
function feedback_send($data) {
// функция feedback_mail будет вызвана, по первому параметру drupal_mail
drupal_mail('feedback', 'notice', $data['mail'], language_default(), $data);
}
function feedback_mail($key, &$message, $params) {
switch($key) {
case 'notice':
$message['subject'] = $params['subject'];
$message['body'][] = 'Поступило новое сообщение следующего содержания';
$message['body'][] = $params['body'];
break;
}
}
//$data['subject'] = 'Обратная связь. Поступило новое сообщение'
//$data['body'] = 'Тут был Вася'
function feedback_send($data) {
// функция feedback_mail будет вызвана, по первому параметру drupal_mail
drupal_mail('feedback', 'notice', $data['mail'], language_default(), $data);
}
function feedback_mail($key, &$message, $params) {
switch($key) {
case 'notice':
$message['subject'] = $params['subject'];
$message['body'][] = 'Поступило новое сообщение следующего содержания';
$message['body'][] = $params['body'];
break;
}
}