Simple Machines Community Forum

SMF Support => Language Specific Support => Русский (Russian) => Topic started by: gimcnuk on April 06, 2012, 02:05:56 AM

Title: Удаление топиков сторонним скриптом
Post by: gimcnuk on April 06, 2012, 02:05:56 AM
Здравствуйте.

Нет ли у кого PHP скрипта позволяющего удалять темы (топики) напрямую, не через интерфейс SMF?

Спасибо.
Title: Re: Удаление топиков сторонним скриптом
Post by: maestrosite.ru on April 06, 2012, 02:12:42 AM
Не совсем задача понятна.
Проверка прав доступа как должна происходить? Как должен задаваться список удаляемых тем? Удаляться темы со всеми сообщениями начисто, или перемещаться в корзину? и прочее
Title: Re: Удаление топиков сторонним скриптом
Post by: gimcnuk on April 06, 2012, 02:43:20 AM
QuoteПроверка прав доступа как должна происходить?
Это неважно, удалять будет только администратор

QuoteКак должен задаваться список удаляемых тем?
Тоже неважно, достаточно функции для удаления одной темы

QuoteУдаляться темы со всеми сообщениями начисто, или перемещаться в корзину? и прочее
Именно начисто.

Распишу подробнее: надо подчищать форум от старых тем. Встроенное средство (prune), подвешивает сервер часа на два (таблица messages около 6Гб и остальные соответствующе)
Поэтому, хочу скрипт который будет не торопясь, по крону, или как демон, удалять старые топики поодиночке.

Проблема в том, что все данные связаны и мне нужен скрипт, где все эти связи прописаны. Т.е. в берётся id из messages смотрится topics, потом log_topics может ещё что-то. И изи всех удаляется

Можно, конечно, самому поковырять, но вдруг есть готовое решение  :)
Title: Re: Удаление топиков сторонним скриптом
Post by: maestrosite.ru on April 06, 2012, 02:51:31 AM
Грохнуть в базе старые сообщения (а можно и темы), а затем исправить ошибки в админке - не спасёт отца русской демократии?
Title: Re: Удаление топиков сторонним скриптом
Post by: gimcnuk on April 06, 2012, 03:12:39 AM
repair вешается по 504. После неудачного эксперимента осталась куча пустых топиков, и никак их не могу исправить встроенными инструментами  :(

QuoteГрохнуть в базе старые сообщения (а можно и темы)
Старые сообщения могут быть и в активных темах. Поэтому, всё равно нужен сложный запрос, с учётом всей структуры.
Title: Re: Удаление топиков сторонним скриптом
Post by: maestrosite.ru on April 06, 2012, 03:18:10 AM
Quote from: gimcnuk on April 06, 2012, 03:12:39 AM
repair вешается по 504. После неудачного эксперимента осталась куча пустых топиков, и никак их не могу исправить встроенными инструментами  :(

QuoteГрохнуть в базе старые сообщения (а можно и темы)
Старые сообщения могут быть и в активных темах. Поэтому, всё равно нужен сложный запрос, с учётом всей структуры.
стало быть актуален вопрос из первого ответа - как список тем задавать? условие какое?
Title: Re: Удаление топиков сторонним скриптом
Post by: gimcnuk on April 06, 2012, 03:35:16 AM
Quote from: maestrosite.ru on April 06, 2012, 03:18:10 AM
стало быть актуален вопрос из первого ответа - как список тем задавать? условие какое?
Да причём список тем?

Нужен скрипт для удаления одной темы со всеми сообщениями, напрямую, не встроенными инструментами.
А с заданием списка/условий я сам разберусь.
Title: Re: Удаление топиков сторонним скриптом
Post by: Sapozhnik on April 07, 2012, 09:03:03 AM
Auto Purge Old Topics не спасет тебя? ;)
Если нужно грохнуть очень много, то я бы это сделал в несколько итераций:
Сначала все темы старее двух лет, потом старее полтора года, потом года...
А потом ставишь на автомат, чтоб каждый день ночью проверяло и чистило.
Title: Re: Удаление топиков сторонним скриптом
Post by: gimcnuk on April 28, 2012, 08:39:05 AM
Всем спасибо  ;D

Сделал встроенными функциями. Там, конечно, куча лишних запросов, но сервер пока не вешает.