Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

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

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

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

  • Автор

Никак. Только вручную 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

  • 1 год спустя...

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

 

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

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

 

У нас на форуме 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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.