Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2008-04-14 14:11:16

Visman
Гость

MOD Удаляем сообщение = уменьшаем счетчик постов

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)

#2 2008-04-17 15:00:40

flashcat
Гость

Re: MOD Удаляем сообщение = уменьшаем счетчик постов

А есть какой нибудь мод или плагин, чтобы можно было например показать все сообщения пользователя, и например  галочками отметить какие удалит???

Или может написать такой если есть умные программисты знающие как это сделать) мне кажется очень помогло бы при очистки форума.

Редактировался flashcat (2008-04-17 15:00:57)

Подвал доски

Под управлением FluxBB. Хостинг Hostens