Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Тема закрыта
MOD Удаляем сообщение = уменьшаем счетчик постов v 1.0
Написал для PunBB 1.2.17
Мод для уменьшения кол-ва сообщений пользователя при удалении им сообщения из темы по нажатию ссылки Удалить в своем посте.
Недочеты: Не будет уменьшать кол-во сообщений при удалении первого сообщения темы (т.е. удаления темы)! Для этого пользуемся плагином в админке.
1. Открыть файл delete.php
2. Находим это (~ 87 строка)
// Delete just this one post
delete_post($id, $cur_post['tid']);
update_forum($cur_post['fid']);
После добавляем это
$low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
$db->query('UPDATE '.$low_prio.$db->prefix.'users SET num_posts=num_posts-1 WHERE id='.$cur_post['poster_id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
3. Сохранить файл delete.php
Если Вы используете мой MOD Не считать сообщения в определенных форумах, то Вам надо внести еще и эти изменения в файл.
4. Находим это (~ 38 строка)
// Fetch some info about the post, the topic and the forum
$result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.posted, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies, p.posted as pposted FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
Заменяем на это
// Fetch some info about the post, the topic and the forum
$result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.posted, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies, p.posted as pposted, f.no_sum_mess FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
5. Находим это (~ 91 строка)
$low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
$db->query('UPDATE '.$low_prio.$db->prefix.'users SET num_posts=num_posts-1 WHERE id='.$cur_post['poster_id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
Заменяем на это
if ($cur_post['no_sum_mess'] == 0)
{
$low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
$db->query('UPDATE '.$low_prio.$db->prefix.'users SET num_posts=num_posts-1 WHERE id='.$cur_post['poster_id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
}
6. Сохранить файл delete.php
Редактировался Visman (2008-04-14 14:12:21)
А есть какой нибудь мод или плагин, чтобы можно было например показать все сообщения пользователя, и например галочками отметить какие удалит???
Или может написать такой если есть умные программисты знающие как это сделать) мне кажется очень помогло бы при очистки форума.
Редактировался flashcat (2008-04-17 15:00:57)
Страницы 1
Тема закрыта