Не присылать оповещения на E-mail если пользователь онлайн на форуме

Serg1234

Заблокирован
Сообщения
70
Реакции
38
Баллы
8,115
Мне показалось странным, что оповещения на почту приходят даже в том случае, если ты находишься на форуме и прекрасно видишь и так все уведомления.
Особенно это касается переписок. Общаешься например с собеседником и в этот момент на E-mail тебе приходят оповещения о том, что он тебе пишет.

Плагины я писать не умею, поэтому придумал такое решение:

library/XenForo/Model/Conversation.php
Найти:
PHP:
if ($alertUser['email_on_conversation'] && $alertUser['user_state'] == 'valid' && !$alertUser['is_banned'])
Заменить:
PHP:
$lastActivity = (time() - $alertUser['last_activity']);

if ($alertUser['email_on_conversation'] && $alertUser['user_state'] == 'valid' && !$alertUser['is_banned'] && $lastActivity > 3600)

library/XenForo/Model/ThreadWatch.php
Найти:
PHP:
if ($user['email_subscribe'] && $user['email'] && $user['user_state'] == 'valid')
Заменить:
PHP:
$lastActivity = (time() - $user['last_activity']);

if ($user['email_subscribe'] && $user['email'] && $user['user_state'] == 'valid' && $lastActivity > 3600)

library/XenForo/Model/ForumWatch.php
Найти:
PHP:
if ($user['send_email'] && !isset($noEmailKeys[$user['user_id']])
         && $user['email'] && $user['user_state'] == 'valid')
Заменить:
PHP:
$lastActivity = (time() - $user['last_activity']);

if ($user['send_email'] && !isset($noEmailKeys[$user['user_id']])
         && $user['email'] && $user['user_state'] == 'valid' && $lastActivity > 3600)
 
Последнее редактирование:
Все таки лучше плагином его реализовать . Будет время возможно сделаю плагином
 
Так берите бесплатно, решение выше. :)
 
Эти правки нужно будет вносить при каждом обновлении движка, верно?..
Не помешал бы аддончик, с галочкой в настройках оповещений. Чтобы был выбор. Всегда отправлять, как по дефолту, или только если оффлайн.
 
Всем привет. Кто знает, как сделать для 2 версии?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу