Опубликовано: 4 июля 201510 г Зашел спамер и поставил кучу минусов везде, как удалить его минусы с репутации? Спасибо.
Опубликовано: 4 июля 201510 г Автор Никак. Только вручную sql запросами.Спасибо, не продуманно однако)
Опубликовано: 4 июля 201510 г Чтобы удалить отрицательные изменения репутации от определенного пользователя выполните следующие 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
Опубликовано: 20 апреля 20178 г Спасибо за рецепт! У нас на форуме часто возникает немного иная задача - удалить лайк/дизлайк у конкретного сообщения.Пользователи часто по ошибке нажимают не ту кнопку, особенно часто промахиваются с мобильных устройств. У нас на форуме 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
Зашел спамер и поставил кучу минусов везде, как удалить его минусы с репутации? Спасибо.