Skip to content

IPB 3.4.6 сам удаляет сообщения

IPB 3.4.6 сам удаляет сообщения. Администратор - только один, форум находится offline, кол-во сообщений по счетчику постоянно уменьшается. Как этот процесс остановить?

Featured Replies

Форум удаляет только сообщения помеченные на удаление по задаче. Но эти сообщения в статистике не должны учитыватся. Вам нужно посмотреть логи модерирования а также посчитать конкретное количество сообщений в бд - сколько удаленных а сколько обычных. При следующем уменьшении сравнить эти значения.

  • Author

Я удаляю сообщения только сам, и не по задаче, а сразу. Пользователи не могут удалять сообщения. В каком месте БД можно посмотреть конкретное количество сообщений?

И логи/журналы удаления где можно найти?

В 3.4 используется отложенное удаление сообщений. Журналы можно найти в АЦ, количество сообщений в таблице posts.

 

Удаление сообщений на ipb 3.4

  • Author

а где можно найти лог работы задачи удаления публикаций?

В журнале задач.

  • Author

В журнале задач удалено 0 публикаций.

Восстановил БД из резервной копии, форум в оффлайне, через некоторое время опять удалилось 50 публикаций, и никаких следов.

Восстановил БД из резервной копии, форум в оффлайне, через некоторое время опять удалилось 50 публикаций, и никаких следов.

Может там были посты к удалению. В модераторской панели смотрели?

 

Смотрите в планировщике задачи, смотрите и/или отключайте хуки.

  • Author

Прошла ночь, удалилось еще 80 сообщений. По SQL запросу count=кол-во оставшихся сообщений, oktoremove=pdelete=0. Т. е. БД говорит, что все так и было.

Можно ли где-то посмотреть, какие конкретно сообщения удалены?

Смотреть нужно не после, а до удаления и сравнить эти значения.

 

SELECT queued, COUNT(*) FROM ibf_posts GROUP BY queued

 

Какие сообщения удалены можно поискать в журнале выполненных задач.

 

Либо создать кеш ид постов и после удаления сравнить какие сообщения отсутствуют.

 

CREATE TABLE ibf_posts_id (pid int(10) not null default '0', topic_id int(10) not null default '0', key pid (pid));
INSERT INTO ibf_posts_id SELECT pid, topic_id FROM ibf_posts;

SELECT c.* FROM ibf_posts_pid c LEFT JOIN ibf_posts p ON c.pid=p.pid WHERE p.pid IS NULL

То же самое можно сделать если есть бэкап. Сохранить ид текущих сообщений развернуть бэкап и посмотреть какие сообщения отсутствуют.

  • Author

queued=0 COUNT=6651 - т. е. ничего на удаление не помечено

 

БД в обоих случаях показывает 6651 сообщений, счетчик форума показывает 6796 сообщений. Правильно ли я понимаю, что здесь что-то не так со счетчиком, потом счетчик пересчитается?

 

Правильно ли я понял, что Вы предлагаете подождать новых удалений, а потом создать вторую таблицу (ibf_posts_id_2) и сравнить pid с первой (ibf_posts_id)?

Правильно ли я понимаю, что здесь что-то не так со счетчиком, потом счетчик пересчитается?

Счетчик обновляется по задаче.

 

			$topics = $this->DB->buildAndFetch( array( 'select' => 'COUNT(*) as tcount',
															 	 'from'   => 'topics',
											 				 	 'where'  => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery( array( 'visible' ), '' ) ) );

		$posts  = $this->DB->buildAndFetch( array( 'select' => 'SUM(posts) as replies',
																 'from'   => 'topics',
																 'where'  => $this->registry->getClass('class_forums')->fetchTopicHiddenQuery( array( 'visible' ), '' ) ) );

В счетчике сумма 2-х вычислений. Видно, что используется таблица тем, и в расчет берутся только видимые.

  • Author

Изначально счетчик показывал 6796 постов, БД - 6651. Сейчас счетчик показывает 6731 пост, БД - 6651. Форум все время оффлайин.

Что делать с этим счетчиком?

Со счетчиком ничего делать не нужно. Форум сам посчитает правильное число сообщений. На него полагаться не следует, ориентиром для реального количество сообщений является только их число в таблице. Если разницы в таблице нету, значит это просто ежедневное обновление статистике.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.