Перейти к контенту
  • 0

Чистка темы от старых сообщений.


torpedo

Вопрос

проблема такая, есть темы на форуме, у которых кол-во сообщений перевалило за 2-3 тыс, смысл в том, что сообщения полугодичной давности уже мягко сказатъ неактуальны и хочется их почистить, не удаляя всю тему. Нужно оставить в теме скажем сообщения только за последние 2 месяца, удалив все сообщения старше 2 месяцев.

 

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

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

SQL-запросом. Что-то типа:

DELETE FROM ibf_posts WHERE topic_id = 'id_твоего_топика' AND post_date < '1118910167' AND post_date > 'время_старта';

где id_твоего_топика — ID темы, которую будем чистить, 1118910167 — текущая дата в Unix формате (1124094167) минут два месяца (5184000), а время_старта — дата первого постинга в теме опять-таки Unix формате. Это чтобы первый пост не прибить.

 

По-моему, так. Только бэкап сначала сделай... :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
SQL-запросом. Что-то типа:
DELETE FROM ibf_posts WHERE topic_id = 'id_твоего_топика' AND post_date < '1118910167' AND post_date > 'время_старта';

где id_твоего_топика — ID темы, которую будем чистить, 1118910167 — текущая дата в Unix формате (1124094167) минут два месяца (5184000), а время_старта — дата первого постинга в теме опять-таки Unix формате. Это чтобы первый пост не прибить.

 

По-моему, так. Только бэкап сначала сделай... :D

 

 

 

Спасибо ;) sql-ем полезть конечно проще всего :) Но каждый раз это делать + это должен делать не я, а мои администраторы/модераторы - вот в чем проблема

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно написать на коленке что-то типа мода! ;)

 

1. В /lang/ru/lang_topic.php добавить:

$lang['TOPIC_CLEAR']               = "Очистить тему";

(в английский соответственно что-то типа «Clear topic»).

 

2. В /sources/topics.php находим

if ($ibforums->member['g_access_cp'] == 1)

и после неё добавляем

$mod_links .= $this->append_link('TOPIC_CLEAR');

 

3. В /sources/topics.php находим

'TOPIC_HISTORY' => '90',

и перед этим добавляем

'TOPIC_CLEAR'    =>'85',

 

4. В /sources/moderate.php находим

case '90':

и перед этим добавляем

       	 case '85':
         $this->topic_clear();
         break;

 

5. В /sources/moderate.php находим

}

?>

и перед этим добавляем

	function topic_clear()
 {
 global $ibforums, $DB, $std;

	 if ($ibforums->member['g_access_cp'] != 1) { $this->moderate_error(); }

 if ( empty($this->topic['tid']) )	{ $this->moderate_error(); }

 $DB->simple_construct( array( 'select' => 'pid',
          'from'   => 'posts',
          'where'  => "topic_id=".$this->topic['tid'],
          'order'  => 'post_date ASC',
          'limit'  => array(0,1) ) );

 $DB->simple_exec();

 $first_post = $DB->fetch_row();

   $clear_time = time() - 5184000;

 $DB->simple_construct( array( "delete" => "posts",
                	 "where"  => "topic_id = {$this->topic['tid']} AND post_date < {$clear_time} AND pid > {$first_post['pid']}",));
	 $DB->simple_shutdown_exec();

   $std->boink_it( $ibforums->base_url."showtopic=".$this->topic['tid'] );
 }

Должно работать. Только потренируйтесь сначала на кошках, а то я не проверял. :D

 

:) Число 5184000 — это то время (в секундах), за которое посты в топике должны сохраниться. Опция доступна администраторам.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.