Тема: MOD Уведомления по e-mail в ЛС
Версия 1.0
1. Выполнить в плагине DB management или phpMyAdmin заменив #__ префиксом Вашей базы.
ALTER TABLE #__users ADD `messages_email` tinyint(1) NOT NULL default '0'2. Открываем файл message_list.php
3. После этого
<label><input type="checkbox" name="messages_enable" value="1"<?php if ($pun_user['messages_enable'] == '1') echo ' checked="checked"' ?> /><?php echo $lang_pms['Use messages'] ?><br /></label> Добавляете это
<label><input type="checkbox" name="messages_email" value="1"<?php if ($pun_user['messages_email'] == '1') echo ' checked="checked"' ?> /><?php echo $lang_pms['Use messages email'] ?><br /></label>4. Этот блок
isset($_POST['messages_enable']) ? $msg_enable=1 : $msg_enable=0;
$db->query('UPDATE '.$db->prefix.'users SET popup_enable='. $popup . ', messages_enable='. $msg_enable.' WHERE id='. $pun_user['id']) or error('Unable to update Private Messsage options', __FILE__, __LINE__, $db->error()); Заменить на этот
isset($_POST['messages_enable']) ? $msg_enable=1 : $msg_enable=0;
isset($_POST['messages_email']) ? $msg_email=1 : $msg_email=0;
$db->query('UPDATE '.$db->prefix.'users SET popup_enable='. $popup . ', messages_enable='. $msg_enable.', messages_email='.$msg_email.' WHERE id='. $pun_user['id']) or error('Unable to update Private Messsage options', __FILE__, __LINE__, $db->error());5. Сохраните файл message_list.php
6. Открываем файл message_send.php
7. Эту строку
$result = $db->query('SELECT id, username, group_id, g_pm_limit, messages_enable FROM '.$db->prefix.'users JOIN '.$db->prefix.'groups ON group_id=g_id WHERE id!=1 AND username=\''.addslashes($_POST['req_username']).'\'') or error('Unable to get user id', __FILE__, __LINE__, $db->error()); Меняете на эту
$result = $db->query('SELECT id, username, group_id, g_pm_limit, messages_enable, messages_email, email FROM '.$db->prefix.'users JOIN '.$db->prefix.'groups ON group_id=g_id WHERE id!=1 AND username=\''.addslashes($_POST['req_username']).'\'') or error('Unable to get user id', __FILE__, __LINE__, $db->error());8. После этого блока
// "Send" message
if(isset($_POST['savemessage']))
$status=0;
else
$status=1;
$db->query('INSERT INTO '.$db->prefix.'messages (owner, subject, message, sender, sender_id, sender_ip, smileys, showed, status, posted, popup,sender_status) VALUES(
\''.$user['id'].'\',
\''.addslashes($subject).'\',
\''.addslashes($message).'\',
\''.addslashes($pun_user['username']).'\',
\''.$pun_user['id'].'\',
\''.get_remote_address().'\',
\''.$smilies.'\',
\'0\',
\'0\',
\''.time().'\',
\'0\',
\''.$status.'\'
)') or error('Unable to send message', __FILE__, __LINE__, $db->error());
// Save an own copy of the message Нужно добавить этот блок
if ($user['messages_email'] == 1)
{
$mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$pun_user['language'].'/mail_templates/form_pm.tpl'));
$first_crlf = strpos($mail_tpl, "\n");
$mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
$mail_message = trim(substr($mail_tpl, $first_crlf));
$mail_subject = str_replace('<mail_subject>', $subject, $mail_subject);
$mail_message = str_replace('<sender>', $pun_user['username'], $mail_message);
$mail_message = str_replace('<user>', $user['username'], $mail_message);
$mail_message = str_replace('<board_title>', $pun_config['o_board_title'], $mail_message);
$mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message);
$mail_message = str_replace('<message_url>', $pun_config['o_base_url'].'/message_list.php', $mail_message);
require_once PUN_ROOT.'include/email.php';
pun_mail($user['email'], $mail_subject, $mail_message);
}9. Сохраните файл message_send.php
10. Открываем файлы pms.php из папок языковых файлов
11. После элемента массива 'Use messages' => ... добавляете строчку
'Use messages email' => 'Получать уведомления о новых ЛС на e-mail',12. Создаем файлы lang\Язык\mail_templates\form_pm.tpl
13. Содержание для русского языка
Subject: Новое личное сообщение: <mail_subject>
Здравствуйте, <user>!
Участник <sender> форума <board_title> отправил Вам личное сообщение.
Сообщение можно прочитать по адресу <message_url>
--
<board_mailer>
(Не отвечайте на это сообщение)14. Содержание для английского языка
Subject: New personal message: <mail_subject>
Hello, <user>!
<sender> from <board_title> has sent you a personal message.
The message is located at <message_url>
--
<board_mailer>
(Do not reply to this message)15. Сохраняем файлы lang\Язык\mail_templates\form_pm.tpl
З.Ы. Каждый юзер вкл/выкл уведомление у себя в ЛС - Настройка.