Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
basssic

Удаление минусов с репутации. Как?

Рекомендованные сообщения

Зашел спамер и поставил кучу минусов везде, как удалить его минусы с репутации? Спасибо.

Поделиться сообщением


Ссылка на сообщение

Никак. Только вручную sql запросами.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Никак. Только вручную sql запросами.

Спасибо, не продуманно однако)

Поделиться сообщением


Ссылка на сообщение

Чтобы удалить отрицательные изменения репутации от определенного пользователя выполните следующие SQL запросы:

 

- Удаление отрицательной репутации выданной другим пользователям

 

UPDATE ibf_profile_portal pp INNER JOIN (
SELECT SUM(ri.rep_rating) AS rating, p.author_id FROM ibf_reputation_index ri 
INNER JOIN ibf_posts p ON (ri.app='forums' AND ri.type='pid' AND ri.type_id=p.pid) 
WHERE ri.member_id = ид_пользователя AND ri.rep_rating=-1
GROUP BY p.author_id
) z ON (z.author_id=pp.pp_member_id)
SET pp.pp_reputation_points=pp.pp_reputation_points - z.rating

- Обновление кеша

 

UPDATE ibf_reputation_cache rc 
INNER JOIN ibf_reputation_index ri ON (rc.app=ri.app AND rc.type=ri.type AND rc.type_id=ri.type_id)
SET rc.rep_points = rc.rep_points - ri.rep_rating
WHERE ri.app='forums' AND ri.type='pid' AND ri.member_id = ид_пользователя AND ri.rep_rating=-1

- Удаление записей репутации

 

DELETE FROM ibf_reputation_index WHERE app='forums' AND type='pid' AND member_id = ид_пользователя AND ri.rep_rating=-1

 

ид_пользователя - заменить на ид нужного пользователя.

 

Запросы выполнять в порядке следования.

Чтобы удалить всю репутацию от определенного пользователя, как положительную так и отрицательную, удалите из запросов AND ri.rep_rating=-1

 

Следующий запрос выведет все сообщения с репутации от данного пользователя:

 

SELECT p.topic_id, p.author_name, p.author_id, FROM_UNIXTIME(p.post_date) post_date, p.post, FROM_UNIXTIME(ri.rep_date) rep_date, ri.rep_rating 
FROM ibf_reputation_index ri
INNER JOIN ibf_posts p ON (ri.app='forums' AND ri.type='pid' AND ri.type_id=p.pid)
WHERE ri.member_id=ид_пользователя ORDER BY ri.rep_date DESC

Поделиться сообщением


Ссылка на сообщение
Гость Alexander

Спасибо за рецепт!

 

У нас на форуме часто возникает немного иная задача - удалить лайк/дизлайк у конкретного сообщения.

Пользователи часто по ошибке нажимают не ту кнопку, особенно часто промахиваются с мобильных устройств.

 

У нас на форуме IP.Board 3.4.8, и там помимо удаления записи из ibf_reputation_cache требуется поправить значение в ibf_reputation_totals

 

У меня вот такие 3 запроса для удаления дизлайка по номеру пользователя и номеру сообщения получились:

DELETE FROM ibf_reputation_index WHERE member_id=id_пользователя AND type_id=id_сообщения;
UPDATE ibf_reputation_totals SET rt_total=rt_total+1 WHERE rt_type_id=id_сообщения;
DELETE FROM ibf_reputation_cache WHERE type_id=id_сообщения;

И то же самое для лайка:

DELETE FROM ibf_reputation_index WHERE member_id=id_пользователя AND type_id=id_сообщения;
UPDATE ibf_reputation_totals SET rt_total=rt_total-1 WHERE rt_type_id=id_сообщения;
DELETE FROM ibf_reputation_cache WHERE type_id=id_сообщения;

При этом я не исправляю общий рейтинг пользователя, он в нашем случае неважен, к тому же его можно поправить отдельно через админку.

 

И вот такой скрипт для быстрой генерации запросов для себя написал, вдруг кому-то еще пригодится :)

https://www.w3schools.com/code/tryit.asp?filename=FET3JU6LS1QA

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...