XF 2.2 Как физически удалить сообщения которые "мягко удалены"

Версия XenForo
2.2.13

Dkf

Проверенные
Сообщения
474
Решения
4
Реакции
60
Баллы
90
Например в отдельно выбранном разделе?
 
Если у тебя нет удалить физически значит ты не выдал себе права, у администраторов есть это по дефолту.
Я имел в виду избавление от мусора и оптимизацию, а не одно конкретное сообщение
 
Можно из базы селектнуть айдишники всех мягко удалённых постов (нужные условия отбора, вроде "тема в разделе Х" дописать там уже несложно будет), через какой-нибудь Excel превратить плоскую табличку в перечисление через запятую всех id, после полученную строку прописать в куку xf_inlinemod_post. После поставить галочку и тут же снять её на любом сообщении, чтобы вылез бар "инлайн-модерации". Там должны будут (теоретически) уже выбраны все мягко удалённые посты, и удалить их уже физически - не составит труда.
 
Dkf, а зачем удалять отдельные посты из скрытых через "мягкое удаление" тем и оставлять темы, которые никто не увидит?
Разве нельзя выделить скрытые посты и нажать "удалить физически"?
Я имел в виду не это...
Я имел в виду -
Как физически удалить сообщения которые "мягко удалены".

Можно из базы селектнуть айдишники всех мягко удалённых постов (нужные условия отбора, вроде "тема в разделе Х" дописать там уже несложно будет), через какой-нибудь Excel превратить плоскую табличку в перечисление через запятую всех id, после полученную строку прописать в куку xf_inlinemod_post. После поставить галочку и тут же снять её на любом сообщении, чтобы вылез бар "инлайн-модерации". Там должны будут (теоретически) уже выбраны все мягко удалённые посты, и удалить их уже физически - не составит труда.
Это сделать просто.
Я просто боюсь работать напрямую с базой данных.
Я не знаю как это скажется на счётчиках, на состоянии тем, на поиске, индексах поиска...
Даже если сообщение удалено, админ же его находит вроде по контенту
 
Это сделать просто.
Я просто боюсь работать напрямую с базой данных.
Я не знаю как это скажется на счётчиках, на состоянии тем, на поиске, индексах поиска...
Даже если сообщение удалено, админ же его находит вроде по контенту
Вы прочитали внимательно пост? Вам предложили вариант с удалением не напрямую в базе данных, а через механизмы движка. Единственное чтобы вы делаете с базой данных - получаете идентификаторы сообщений, а все остальные манипуляции производите в браузере
Если сообщение будет удалено таким образом, оно будет удалено навсегда, но правильным образом. Счётчики перестроятся, и так далее
 
Нашёл решение, но, через sql запросы.
SQL:
DELETE FROM xf_post
WHERE message_state = 'deleted'

И видим:
1698669131643.png
2 - Кол-во сообщений которые были скрыты от публичного доступа. Нажимаем на это число

Дальше делаем всё как на скриншоте:
1698669228702.png

Видим такую картину и нажимаем "Да":
1698669261568.png


Всё. Помните, всегда нужно делать бекап дб. Если я что то написал не так, пожалуйста, поправьте.

P.S Тестировал на версии xf 2.2.9
 
Последнее редактирование:
Нашёл решение, но, через sql запросы.
SQL:
DELETE FROM xf_post
WHERE message_state = 'deleted'

И видим:
Посмотреть вложение 149705
2 - Кол-во сообщений которые были скрыты от публичного доступа. Нажимаем на это число

Дальше делаем всё как на скриншоте:
Посмотреть вложение 149706

Видим такую картину:
Посмотреть вложение 149707


Всё. Помните, всегда нужно делать бекап дб. Если я что то написал не так, пожалуйста, поправьте.

P.S Тестировал на версии xf 2.2.9
...

Вот буквально выше CrazyHackGUT описал решение через движок. Мы тут все распинаемся что лезть в базу напрямую не надо и противопоказано, а тут вы выкатываете свое "решение"
Я даже не знаю, как это прокомментировать
 
Последнее редактирование:
Какие конкретно счётчики? Matew
Кол-во сообщений в этой теме (где удаляется сообщение)
Кол-во сообщений написанные этим пользователем (чье сообщение удаляется)
Общее кол-во сообщений на форуме
Возможно так-же последнее сообщение в теме. Тут не уверен
 
Кол-во сообщений в этой теме (где удаляется сообщение)
Кол-во сообщений написанные этим пользователем (чье сообщение удаляется)
Общее кол-во сообщений на форуме
Возможно так-же последнее сообщение в теме. Тут не уверен
А вот и нет.

1. Кол-во сообщений в этой теме (где удаляется сообщение) - Если сообщение скрыто от общего доступа, оно не числится в теме.
2. Кол-во сообщений написанные этим пользователем (чье сообщение удаляется) - Аналогично 1.
3. Общее кол-во сообщений на форуме - Аналогично 1.
4. Возможно так-же последнее сообщение в теме. Тут не уверен - Аналогично 1.

Только что всё проверил. Не в коем случае не спорю с Matew.
 
А вот и нет.

1. Кол-во сообщений в этой теме (где удаляется сообщение) - Если сообщение скрыто от общего доступа, оно не числится в теме.
2. Кол-во сообщений написанные этим пользователем (чье сообщение удаляется) - Аналогично 1.
3. Общее кол-во сообщений на форуме - Аналогично 1.
4. Возможно так-же последнее сообщение в теме. Тут не уверен - Аналогично 1.

Только что всё проверил. Не в коем случае не спорю с Matew.

Ну хз тогда... Я считаю как-то правильнее удалять сообщения физически средствами форума или плагина, а не запросом в MySQL...
Хочется иметь какие-то опции - выбор разделов. Выбора ников, чьи сообщения не удалять. Выбор даты удаления. Т.е. удалять физически сообщения которые удалены больше года назад.
 
Ну хз тогда... Я считаю как-то правильнее удалять сообщения физически средствами форума или плагина, а не запросом в MySQL...
Хочется иметь какие-то опции - выбор разделов. Выбора ников, чьи сообщения не удалять. Выбор даты удаления. Т.е. удалять физически сообщения которые удалены больше года назад.
Такого нет. Полумера вам предложена: делать выборку самому через базу. Все остальное - в поиск исполнителя
 
Не всегда есть то, что мы хотим, в виде хотя бы какого-то дополнения.

Я считаю, что предложенный мною вариант, наиболее оптимальный и простой: из базы достаёте идентификаторы мягко удалённых сообщений, после преобразуете их в обычное перечисление через запятую, скармливаете браузеру в куку и дальше уже бар инлайн-модерации сам подхватит их, вам останется лишь вызвать его как-нибудь (как вариант, опять же, просто выделить любое сообщение и снять с него выделение тут же).

Но вообще, если подумать, в админке движка есть функционал массовой обработки тем по некоторым условиям (/admin.php?threads/batch-update). Если Вам этот функционал для сообщений очень нужен, можете попробовать закинуть предложение разработчикам движка на оф и надеяться, что они это сделают в грядущей 2.3.
OFFTOP

Осталось помолиться, чтобы на 2.3 весь кастом из-за выпиленного jQuery не развалился к чертям.

 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу