Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Уведомление модераторов о событиях
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
Уведомление модераторов о событиях
Подскажите, есть ли штатная возможность уведомления модераторов о событиях в панели модерации?
Скажем, поступила жалоба или сообщение на одобрение.
Это никак не отображается.
Нужно специально Ф5-кать в панели модерации, чтобы быть в курсе.
А это неудобно.
Если штатной возможности нет, может, кто поможет, как сделать нештатно?
Оптимально - уведомлять об этом модератора в ЛС. Или после ссылки на панель модерации сделать счетчик новых событий, как счетчик новых сообщений в ЛС.
Заранее спасибо.
Скажем, поступила жалоба или сообщение на одобрение.
Это никак не отображается.
Нужно специально Ф5-кать в панели модерации, чтобы быть в курсе.
А это неудобно.
Если штатной возможности нет, может, кто поможет, как сделать нештатно?
Оптимально - уведомлять об этом модератора в ЛС. Или после ссылки на панель модерации сделать счетчик новых событий, как счетчик новых сообщений в ЛС.
Заранее спасибо.
-
NCom
- phpBB 2.0.11
- Сообщения: 810
- Стаж: 20 лет 9 месяцев
- Откуда: Ставрополь
- Забанен: Бессрочно
я даже думаю, что это должно выглядеть так.
Рядом с с личными сообщениями в шапке, кнопочка *события* по желанию короче.
И при поступлении жалобы, блокировки, вынесения предупреждения кому либо из пользователей, админ получает оповещение, ну и модераторы естественно получают то, что полагается получать им.
Как мне кажется, всем было бы удобно, ну или на крайняк, просто вторую часть для модераторов реализовать.
Рядом с с личными сообщениями в шапке, кнопочка *события* по желанию короче.
И при поступлении жалобы, блокировки, вынесения предупреждения кому либо из пользователей, админ получает оповещение, ну и модераторы естественно получают то, что полагается получать им.
Как мне кажется, всем было бы удобно, ну или на крайняк, просто вторую часть для модераторов реализовать.
Задачу решил.
Может, не очень элегантно, но уж как смог
В report.php FIND
AFTER ADD
В root/language/ru/email/ по образу и подобию других файлов в папке создаётся файл admin_notify_reported.txt.
Пояснение - группа с id 6416 - супермодераторы. По вкусу можно поставить id другой группы.
Может, не очень элегантно, но уж как смог
В report.php FIND
Код: Выделить всё
$message = $user->lang['POST_REPORTED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');Код: Выделить всё
// START Notify on Report MOD
if (!$report_data['topic_reported'])
{
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
$messenger = new messenger(false);
$sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang, u.user_notify_type, g.user_id, g.group_id
FROM ' . USERS_TABLE . ' u, ' . USER_GROUP_TABLE . ' g WHERE u.user_id = g.user_id AND g.group_id = 6416';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$messenger->template('admin_notify_reported', $row['user_lang']);
$messenger->to($row['user_email'], $row['username']);
$messenger->send($row['user_notify_type']);
}
$db->sql_freeresult($result);
}
// END Notify on Report MODПояснение - группа с id 6416 - супермодераторы. По вкусу можно поставить id другой группы.
-
NCom
- phpBB 2.0.11
- Сообщения: 810
- Стаж: 20 лет 9 месяцев
- Откуда: Ставрополь
- Забанен: Бессрочно
-
Alex_G
- phpBB 1.4.1
- Сообщения: 47
- Стаж: 18 лет 11 месяцев
- Откуда: Moscow
Re: Уведомление модераторов о событиях
Уже не "Бета", находится здесь: http://www.phpbb.com/community/viewtopi ... &t=1057515Crelby писал(а):***Blaze*** писал(а):Вот есть готовый мод Notify Moderators.
Спасибо, я просто в "Беты" не залезал
Я поставил (на 3.0.3), но уведомления не приходят. Т.е. приходят иногда пустые письма.
Есть там такая возможность, но что толку если мод не работает...NCom писал(а):есть ли там возможность выбора уведомлений. Просто если там нет выключателя уведомлений о каждом новом сообщении то на...
Сделал в итоге как предложил Crelby, письма приходят.
-
Weasel
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 15 лет
Re: Уведомление модераторов о событиях
Поставила на 3.0.9.
Уведомления приходят, причем обо всем - отправлена жалоба, закрыта жалоба, добавлено новое сообщение
В админке никакого управления этим счастьем нет.
Пытаюсь понять, какой кусок кода за это отвечает... Если кто-то сталкивался - буду благодарна за экономию времени.
Вообще жаль, что в .xml нет комментариев к изменениям в коде.
Уведомления приходят, причем обо всем - отправлена жалоба, закрыта жалоба, добавлено новое сообщение
В админке никакого управления этим счастьем нет.
Пытаюсь понять, какой кусок кода за это отвечает... Если кто-то сталкивался - буду благодарна за экономию времени.
Вообще жаль, что в .xml нет комментариев к изменениям в коде.
-
sania
- phpBB 1.0.0
- Сообщения: 3
- Стаж: 14 лет
Re: Уведомление модераторов о событиях
Добрый день. Пытаюсь сделать как указал Crelby, но не могу найти в файле report.php указанную строчку.
У меня phpbb 3.0.11. Я редактирую root/report.php - правильно?
Вот текст моего report.php. Куда вставлять?
У меня phpbb 3.0.11. Я редактирую root/report.php - правильно?
Вот текст моего report.php. Куда вставлять?
Код: Выделить всё
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mcp');
$forum_id = request_var('f', 0);
$post_id = request_var('p', 0);
$pm_id = request_var('pm', 0);
$reason_id = request_var('reason_id', 0);
$report_text = utf8_normalize_nfc(request_var('report_text', '', true));
$user_notify = ($user->data['is_registered']) ? request_var('notify', 0) : false;
$submit = (isset($_POST['submit'])) ? true : false;
if (!$post_id && (!$pm_id || !$config['allow_pm_report']))
{
trigger_error('NO_POST_SELECTED');
}
if ($post_id)
{
$redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&p=$post_id") . "#p$post_id";
$return_forum_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id");
$pm_id = 0;
}
else
{
$redirect_url = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&mode=view&p=$pm_id");
$return_forum_url = '';
$post_id = 0;
$forum_id = 0;
}
// Has the report been cancelled?
if (isset($_POST['cancel']))
{
redirect($redirect_url);
}
if ($post_id)
{
// Grab all relevant data
$sql = 'SELECT t.*, p.*
FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t
WHERE p.post_id = $post_id
AND p.topic_id = t.topic_id";
$result = $db->sql_query($sql);
$report_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$report_data)
{
trigger_error('POST_NOT_EXIST');
}
$forum_id = (int) ($report_data['forum_id']) ? $report_data['forum_id'] : $forum_id;
$topic_id = (int) $report_data['topic_id'];
$sql = 'SELECT *
FROM ' . FORUMS_TABLE . '
WHERE forum_id = ' . $forum_id;
$result = $db->sql_query($sql);
$forum_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$forum_data)
{
trigger_error('FORUM_NOT_EXIST');
}
// Check required permissions
$acl_check_ary = array('f_list' => 'POST_NOT_EXIST', 'f_read' => 'USER_CANNOT_READ', 'f_report' => 'USER_CANNOT_REPORT');
foreach ($acl_check_ary as $acl => $error)
{
if (!$auth->acl_get($acl, $forum_id))
{
trigger_error($error);
}
}
unset($acl_check_ary);
if ($report_data['post_reported'])
{
$message = $user->lang['ALREADY_REPORTED'];
$message .= '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
$message .= '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $return_forum_url . '">', '</a>');
trigger_error($message);
}
}
else
{
// Grab all relevant data
$sql = 'SELECT p.*, pt.*
FROM ' . PRIVMSGS_TABLE . ' p, ' . PRIVMSGS_TO_TABLE . " pt
WHERE p.msg_id = $pm_id
AND p.msg_id = pt.msg_id
AND (p.author_id = " . $user->data['user_id'] . " OR pt.user_id = " . $user->data['user_id'] . ")";
$result = $db->sql_query($sql);
$report_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$report_data)
{
$user->add_lang('ucp');
trigger_error('NO_MESSAGE');
}
if ($report_data['message_reported'])
{
$message = $user->lang['ALREADY_REPORTED_PM'];
$message .= '<br /><br />' . sprintf($user->lang['RETURN_PM'], '<a href="' . $redirect_url . '">', '</a>');
trigger_error($message);
}
}
// Submit report?
if ($submit && $reason_id)
{
$sql = 'SELECT *
FROM ' . REPORTS_REASONS_TABLE . "
WHERE reason_id = $reason_id";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$row || (!$report_text && strtolower($row['reason_title']) == 'other'))
{
trigger_error('EMPTY_REPORT');
}
$sql_ary = array(
'reason_id' => (int) $reason_id,
'post_id' => $post_id,
'pm_id' => $pm_id,
'user_id' => (int) $user->data['user_id'],
'user_notify' => (int) $user_notify,
'report_closed' => 0,
'report_time' => (int) time(),
'report_text' => (string) $report_text
);
$sql = 'INSERT INTO ' . REPORTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$report_id = $db->sql_nextid();
if ($post_id)
{
$sql = 'UPDATE ' . POSTS_TABLE . '
SET post_reported = 1
WHERE post_id = ' . $post_id;
$db->sql_query($sql);
if (!$report_data['topic_reported'])
{
$sql = 'UPDATE ' . TOPICS_TABLE . '
SET topic_reported = 1
WHERE topic_id = ' . $report_data['topic_id'] . '
OR topic_moved_id = ' . $report_data['topic_id'];
$db->sql_query($sql);
}
$lang_return = $user->lang['RETURN_TOPIC'];
$lang_success = $user->lang['POST_REPORTED_SUCCESS'];
}
else
{
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
SET message_reported = 1
WHERE msg_id = ' . $pm_id;
$db->sql_query($sql);
$sql_ary = array(
'msg_id' => $pm_id,
'user_id' => ANONYMOUS,
'author_id' => (int) $report_data['author_id'],
'pm_deleted' => 0,
'pm_new' => 0,
'pm_unread' => 0,
'pm_replied' => 0,
'pm_marked' => 0,
'pm_forwarded' => 0,
'folder_id' => PRIVMSGS_INBOX,
);
$sql = 'INSERT INTO ' . PRIVMSGS_TO_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$lang_return = $user->lang['RETURN_PM'];
$lang_success = $user->lang['PM_REPORTED_SUCCESS'];
}
meta_refresh(3, $redirect_url);
$message = $lang_success . '<br /><br />' . sprintf($lang_return, '<a href="' . $redirect_url . '">', '</a>');
if ($return_forum_url)
{
$message .= '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $return_forum_url . '">', '</a>');
}
trigger_error($message);
}
// Generate the reasons
display_reasons($reason_id);
$page_title = ($pm_id) ? $user->lang['REPORT_MESSAGE'] : $user->lang['REPORT_POST'];
$template->assign_vars(array(
'S_REPORT_POST' => ($pm_id) ? false : true,
'REPORT_TEXT' => $report_text,
'S_REPORT_ACTION' => append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&p=' . $post_id . '&pm=' . $pm_id),
'S_NOTIFY' => $user_notify,
'S_CAN_NOTIFY' => ($user->data['is_registered']) ? true : false)
);
generate_forum_nav($forum_data);
// Start output of page
page_header($page_title);
$template->set_filenames(array(
'body' => 'report_body.html')
);
page_footer();
?>-
DK7
- Former team member
- Сообщения: 1008
- Стаж: 20 лет 3 месяца
- Откуда: Кишинёв
- Благодарил (а): 3 раза
- Поблагодарили: 25 раз
Re: Уведомление модераторов о событиях
попробуйте после
Код: Выделить всё
$message .= '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="' . $return_forum_url . '">', '</a>');-
sania
- phpBB 1.0.0
- Сообщения: 3
- Стаж: 14 лет
Re: Уведомление модераторов о событиях
Не получается 
Может подскажите php файл в котором идет обработка страницы которая выводится после создания новой темы пользователем, на которой написано "ваше сообщение отправлено на оценку модератору..."
Может я там где нить смогу прикрутить.
Просто я пробовал вообще во все if-ы в подряд подставлять и с
if (!$report_data['topic_reported'])
{
и без. Чистил кеш и куки ничего.
Наверно руки...
Может подскажите php файл в котором идет обработка страницы которая выводится после создания новой темы пользователем, на которой написано "ваше сообщение отправлено на оценку модератору..."
Может я там где нить смогу прикрутить.
Просто я пробовал вообще во все if-ы в подряд подставлять и с
if (!$report_data['topic_reported'])
{
и без. Чистил кеш и куки ничего.
Наверно руки...
-
sania
- phpBB 1.0.0
- Сообщения: 3
- Стаж: 14 лет
Re: Уведомление модераторов о событиях
Поставил мод notify_moderators.zip и проблема решилась. Теперь приходят письма о новых темах и новых ответах от пользователей.
Также рекомендую мод
notify_admin_on_registration_1_0_0.zip
Приходят сообщения админу на почту о регистрации новых пользователей.
Также рекомендую мод
notify_admin_on_registration_1_0_0.zip
Приходят сообщения админу на почту о регистрации новых пользователей.


