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

Рассинхрон номера сообщения и даты сообщения

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

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

Мне это вроде бы никак не мешало, пока я не поставил это: [3.2] Статистика
Статистика плывет и скорее всего это связано как раз с некорректной хронологией.
Влитых сообщений с рассинхроном даты достаточно много (более 3000). Некоторые темы в топе ПСов.

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

Re: Рассинхрон номера сообщения и даты сообщения

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

Стандартных нет, даты по стандарту не должны пересчитываться
Можно посмотреть в БД, какая там разница по датам, и прибавить к некоторому интервалу по id соощений эн-ное количество секунд
Например,

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

UPDATE phpbb_posts SET post_time = post_time + 123321 WHERE post_id > 123 AND post_id < 456
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

Есть же ещё таблица тем и, возможно, ещё какие-то связанные таблицы?
Кроме того, вливался форум, который существовал с 2006 по 2014 в форум, который существует с 2009 по сегодня. В пересечении 2009-2014 пересчитать скриптом не получится ((

Отправлено спустя 6 минут 48 секунд:
Чем вообще чреват подобный рассинхрон?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: Рассинхрон номера сообщения и даты сообщения

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

С phpbb_topics можно то же самое можно сделать, с topic_first_post_id - topic_time и topic_last_post_id - topic_last_post_time. А можно и стандартную синхронизацию попробовать для начала, когда изменения в phpbb_posts уже будут
rst писал(а): 31.03.2018 2:43 Чем вообще чреват подобный рассинхрон?
Ничем, кроме иногда не особо логичного отображения
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

Нет, не получится так. Тут нужен какой-то очень хитрый алгоритм. Полдня голову ломал. Без толку.
Беда в том, что совершенно непонятно, как обнаружить самый важный признак - id последнего залитого сообщения.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение Sheer »

например

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

SELECT topic_last_post_id FROM phpbb_topics WHERE topic_id = 1 
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

Осознал, что надо танцевать от первого кривого сообщения, а не от последнего. Что скажете про такой алгоритм?

Некорректное время у меня начинается, например, с сообщения № 300001. Соответственно, 1<=post_id<=300000 это корректные родные сообщения моего форума с корректным временем.
Берем время от сообщения №300000. Это будет стартовое время.
Начинаем перебирать таблицу с поста № 300001. Если его время < стартовое время, то присваиваем ему стартовое время + 10 сек, берем это время как стартовое и идем далее.
Если его время больше чем стартовое время, то берем его время как стартовое и идем дальше (это родное сообщение).
И так пробегаем всю таблицу.

По идее должно корректно отработать?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение Sheer »

Это все бесполезно - синхронизация форума все вернет на свои места.
Тут подробно
[3.1][beta] Reassign First Post
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

Я верно понимаю, что если поменять даты сообщений в таблице постов по моему алгоритму, то после синхронизации вообще может сложиться так, что текущие первые посты тем станут не первыми? И решения нет?

Ладно, тогда другой вопрос. Для ручной переборки мне нужно как-то вычленить все посты или темы, хронология которых некорректна. Т.е. просто сделать выборку. А я уже руками этот трэш расфасую со временем. Это как-то возможно сделать?

Надо, кстати, народ об этой проблеме тут предупредить: Слияние двух форумов
Я так понимаю, мне слияние делалось именно этим скриптом.
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз
Контактная информация:

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение Balamut »

Логичней процедуру сбора статистики изменить так, чтобы она таймштамп брала за основу, а не айди сообщения.
rst писал(а): 31.03.2018 2:10 При этом стандартная структура форума предполагает, что большему номеру сообщения соответствует более позднее время.
Совершенно нет. Если изменять, например, время сообщения, то тоже самое получится. Каждый раз синхронизировать базу ради статистики? Глупо.

чтобы нормально ездить по нашим дорогам, надо не дорогу нормальной сделать, а все машины переделать на гусеничный ход
//
// That's all, Folks!
// -------------------------------------------------
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 49 раз
Поблагодарили: 6 раз

Re: Рассинхрон номера сообщения и даты сообщения

Сообщение rst »

Вы правы. Вопрос снят.
Проблему со статистикой решил. Расширение было кривое и потребовалась пара правок.
Ответить

Вернуться в «phpBB-пространство»