Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

total posts (всего сообщений) - проблема счетчика?

Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!
Внимание: с 7 ноября 2020 года phpBB Group завершено дальнейшее развитие phpBB версии 3.2, а с 1 августа 2024 года будет прекращена её поддержка.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.

Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
repitchem
phpBB 1.2.0
Сообщения: 15
Стаж: 5 лет

total posts (всего сообщений) - проблема счетчика?

Сообщение repitchem »

Только что заметил проблемку и не пойму откуда. или раньше не замечал или что-то накрутил (день тяжелый выдался).

В статистике форума (phpbb 3.2.5) есть счетчик Всего сообщений. После внесения изменений в таблицы данных, заметил, что создавая новую тему, тестовую, счетчик ее считает, но после удаления этой темы, значение счетчика не уменьшается на 1, а остается прежним, т.е. счетчик не отражает реальное положение дел...

Ну, думаю, долазился в БД... делаю откат на резервную копию... Создаю опять тестовую тему, удаляю, и баг не исчезает (кэш чистил). До резервной копии в базах данных не лазил вообще, форум установил недавно...

Кто сталкивался с такой проблемой? Может так и должно быть (на версии phpbb 3.0... все нормально и этого бага нет)? Как решается?

В чем может быть причина и Где локализован TOTAL POSTS?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение Татьяна5 »

repitchem писал(а): 26.03.2019 19:50 делаю откат на резервную копию
И БД, и файлы одной версии?
БД перед перезаливкой очищали? (Не всегда без очистки заливается без ошибок)
repitchem
phpBB 1.2.0
Сообщения: 15
Стаж: 5 лет

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение repitchem »

Татьяна5 писал(а): 26.03.2019 20:21 И БД, и файлы одной версии?
Да, одной версии.

Заливал не я, а тех. помощь на хостинге (попросил их). Все данные вернулись к первоначальным значениям, а вот этот баг остался, типа он был до ... но я видимо его не замечал.

Интересно узнать локализацию этого параметра в коде и базах. И как он вообще работает. Гуглил - не нагуглилось. :facepalm:
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение Татьяна5 »

Локализован - это переведён на другой язык
Где-то в папке language/ru перевод есть
repitchem
phpBB 1.2.0
Сообщения: 15
Стаж: 5 лет

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение repitchem »

Цифра общего количества постов локализована в таблице БД phpbb_config под именем параметра num_posts

Изменил, но при удалении тестового поста по-прежнему не вычитает единицу (только прибавляет в момент создания нового поста) из num_posts... Может кто знает точно, где в коде происходит данная операция, или может не в коде а в БД как-то где-то? :(
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение LavIgor »

repitchem, Вы удаляете безвозвратно или в корзину?
repitchem
phpBB 1.2.0
Сообщения: 15
Стаж: 5 лет

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение repitchem »

Безвозвратно - ставлю галку

Отправлено спустя 20 минут 27 секунд:
В общем решил проблему, сомнительно, перепробовав кучу вариантов.

Скорей всего, удаление темы и поста в теме осуществляется функцией function delete_post(........), includes/functions_posting.php вот в этой функции я и заменил часть кода:

Код: Выделить всё

// Specify our post mode
	$post_mode = 'delete';
	if (($data['topic_first_post_id'] === $data['topic_last_post_id']) && ($data['topic_posts_approved'] + $data['topic_posts_unapproved'] + $data['topic_posts_softdeleted'] == 1))
	{
		$post_mode = 'delete_topic';
	}
на

Код: Выделить всё

// Specify our post mode
	$post_mode = 'delete';
	if (($data['topic_first_post_id'] === $data['topic_last_post_id']) && ($data['topic_posts_approved'] + $data['topic_posts_unapproved'] + $data['topic_posts_softdeleted'] == 1))
	{
		$post_mode = 'delete_topic';
		$config->increment('num_posts', -1, false);
	}
Возможно это не правильно и так нельзя, но оно работает. Кто что думает, знает, подразобрался лучше - пишите.

P.S. Скачивал чистые дестрибютивы phpbb 3.2.5 & 3.2.4 и полностью копировал / вставлял код из чистого файла в тот что на моем форуме - баг оставался.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение Татьяна5 »

Судя по коду это повлияет на темы из одного сообщения
repitchem
phpBB 1.2.0
Сообщения: 15
Стаж: 5 лет

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение repitchem »

Татьяна5 писал(а): 27.03.2019 0:50 Судя по коду это повлияет на темы из одного сообщения
Сейчас корректно все удаляет и отображает на счетчике.
Например, удаляя тему с сообщениями, количество тем уменьшается на 1, а количество сообщений на количество сообщений в удаленной теме.

Вот узнать бы в каком именно месте реализовано это удаление и как на уровне кода функционирует счетчик. Например количество тем изначально работало корректно, проблемы были только с количеством постов.

Возможно процесс регистрации изменения количества сообщений локализован не в этом файле и не в этой функции, а где?..

Отправлено спустя 1 час 6 минут 44 секунды:
В общем, упомянутая ошибка возникла после установки языкового пакета :facepalm:
Т.е. копать нужно в языковом пакете.. - будем копать. Помогайте, что там где может быть закопано... :?: :idea:

1. Установил чистый phpbb 3.2.5 - все нормально, данной ошибки нет.
2. Устанавливаю и активирую языковой пакет - ошибка проявляется.
3. Удаляю/деактивирую языковой пакет, перехожу на англ. - ошибка остается.

Может что-то где-то в таблицах БД меняется и ноги растут именно из БД?... :cry:
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 4 месяца
Благодарил (а): 43 раза
Поблагодарили: 506 раз
Контактная информация:

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение Pazh »

repitchem, включите debug на форуме, посмотрите в логах сервера при удалении возникают ли ошибки
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: total posts (всего сообщений) - проблема счетчика?

Сообщение Sheer »

repitchem писал(а): 27.03.2019 9:20 Возможно процесс регистрации изменения количества сообщений локализован
Локализован - это значит переведен на язык пользователя, если он не английский.
Изменение счетчика сообщений производится в функции remove_post_from_statistic
repitchem писал(а): 27.03.2019 9:20 упомянутая ошибка возникла после установки языкового пакета
Абсолютно не из-за этого.

Код: Выделить всё

	'TOTAL_POSTS_COUNT'	=> array(
		1	=> 'Всего сообщений: <strong>%d</strong>',
		2	=> 'Всего сообщений: <strong>%d</strong>',
		3	=> 'Всего сообщений: <strong>%d</strong>',
	),
тут никакого криминала нет, ибо

Код: Выделить всё

'TOTAL_POSTS'	=> $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']),
Отсюда видно, что общее количество сообщений берется из таблицы config поля num_posts. А вот почему это не значение не меняется, вопрос другой.
Итак, этот глюк возникает при удалении сообщения, когда оно является единственным в теме, во всех остальных случаях счетчик изменяется корректно.
Это происходит потому, что значение переменной $post_mode, передаваемой в функцию delete_post, равно delete_topic. В этом случае происходит удаление информации о теме из статистики в строке 1284

Код: Выделить всё

$phpbb_content_visibility->remove_topic_from_statistic($data, $sql_data);
но не происходит удаление статистики о сообщении, как в других случаях (например $post_mode = 'delete')
Похоже на баг.
Добавление $phpbb_content_visibility->remove_post_from_statistic($data, $sql_data); приводит к неправильному отображению статистике в списке форумов на главной, а в случае, если в форуме это была единственная тема, то к ошибке SQL.
Посему добавление $config->increment('num_posts', -1, false); после $phpbb_content_visibility->remove_topic_from_statistic($data, $sql_data); вероятно является правильным решением. Ну или надо ковырять функцию remove_post_from_statistic
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Перенесено из форума phpBB-пространство в форум Поддержка phpBB 3.2.x 27.03.2019 13:28 модератором Sheer

Ответить

Вернуться в «Поддержка phpBB 3.2.x»