Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Sheer писал(а): Вот только есть одна пичалька. Синхронизация темы или форума вернет все на старое место. Ну сообщение останется первым, а вотtopic_first_post_id примет первоначальное значение. Так синхронизация работает. Она определяет первое сообщение не по времени создания сообщения, а по его id :cry:
Я тут подумала, что обойти это можно по другому. Сделала руками, но лучше бы, конечно, расширением.
Чтобы риски перетасовки от синхронизации минимизировать можно поменять местами начинку постов и авторов. То есть я залезла в старый первый пост от пользователя, сделала его админским и написала все, что надо. А свое сообщение сделала сообщением пользователя (поменяла имя пользователя и начинку сообщения) и сделала ему дату на минуту позже оригинального первого сообщения.
Sheer писал(а): Она определяет первое сообщение не по времени создания сообщения, а по его id
Значит Ваше расширение id не меняет, выискивая среди удалённых сообщений мЕньшее свободное?
А я вот как раз споткнулся разик об эти самые id. Решил как-то в середину темы пихнуть несколько сообщений. Датами и временем всё настроил, сообщения там, где надо. Но вот ссылки на эти сообщения всегда бросают на последнее сообщение темы. Исправил ситуацию ручной правкой id этих втиснутых сообщений. Повезло, что смог найти подходящие свободные id. Вообщем, сакральный смысл в том, что id сообщений темы должны идти по нарастающей. Если это сбивать, то неприятности могут подстерегать...
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
KimIV писал(а): Значит Ваше расширение id не меняет
Боже упаси!!!
KimIV писал(а): id сообщений темы должны идти по нарастающей.
Само собой - уникальный первичный ключ autoincrement
KimIV писал(а): Повезло
Не то слово. Мог получить такой головняк - в век бы не разобрался потом что к чему.
Отправлено спустя 1 минуту 24 секунды:
Вчерашний борщ писал(а): Чтобы риски перетасовки от синхронизации минимизировать можно поменять местами начинку постов и авторов
Частный случай. При объединении тем не прокатит.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Sheer, для задачи поставить первый пост тот, который надо - именно это поможет, остальное пусть катится само собой.
Отправлено спустя 11 минут 31 секунду:
KimIV писал(а): Но вот ссылки на эти сообщения всегда бросают на последнее сообщение темы.
кучеряво и неверно, ссылка на последнее сообщение темы будет в последовательности по айди, но как только в теме кто-то отпишется, все будет выглядеть естественно со всех сторон. Ссылка на сообщение будет работать как ссылка на сообщение всегда.
Sheer писал(а): Само собой - уникальный первичный ключ autoincrement
Я имел в виду, что в результате перетасовок сообщений по датам и времени их id должны располагаться таким образом:
12, 25, 37, 38, 42, 44
А вот при таком расположении ссылка на сообщение с id 42 будет вести на последнее сообщение темы, в данном примере на сообщение с id 44:
12, 42, 25, 37, 38, 44
И для того, чтобы всё было ок, нужно в таблице сообщений искать свободный id между 12 и 25, что не всегда выполнимо.
У меня пока был только один случай, когда пришлось менять id трёх сообщений c 20000 (ну или около того) на интервал между 10 и 50. Как раз нашлись удалённые сообщения, читай свободные id 17, 18 и 19.
Отправлено спустя 1 минуту 12 секунд:
Вчерашний борщ писал(а): Ссылка на сообщение будет работать как ссылка на сообщение всегда.
Проверьте и удивитесь. Я всего лишь опытом поделился...
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
KimIV, на Вашем форуме есть проблема, у меня - на моем форуме такой проблемы нет. Ссылки на сообщения корректно обрабатываются. Сейчас у меня в одной из тем первое родное сообщение (с подменой начинки) второе намного более свежее по времени создания, но стоит следышком. С обеих ссылок открывается как надо. Первое как первое, второе (намного моложе) как второе, а не начало или конец темы.
Последний раз редактировалось Вчерашний борщ 16.10.2016 22:42, всего редактировалось 1 раз.
Когда второе моложе по ид - это нормально. В смысле это нормальный порядок следования сообщений теме. А вот когда второе старше по ид, как у меня, тогда интересно жить становится :D
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
KimIV, ну вот чтоб не мучиться, лучше начинку менять. У меня порядок все равно нарушен, при нормальном расположении сообщений второй пост был бы на 50-ой странице.
А я не мучаюсь. Ид меняю там, где надо. А в пример привёл сообщение, которому не надо менять ид. Хотя можно было бы поставить, например 31100. Просто ссылок на это сообщение нет, тему читают последовательно.
ЗЫ. Было бы интересно услышать мнение гуру, почему при перестановках сообщений перестают работать ссылки на них? Может это косяк и его надо лечить?
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
Потому что id ссылки записывается еще и в другие таблицы, оттуда и берутся. Допустим в теме ид первого сообщения было 333, ты заменил его на свободный номер 300, а в таблице topics первым сообщением остается id=333
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Sheer, я не менял ид сообщения 171. Будьте внимательнее, пожалуйста!
Отправлено спустя 12 минут 28 секунд:
Посмотрел таблицу топикс и в ней первым сообщением той темы записано именно 171. Объяснение вижу в объединении тем. Сообщение 171 действительно было первым в другой теме.
Sheer, спасибо!
Отправлено спустя 6 минут 15 секунд:
Изменил в топикс ид первого сообщения и ссылка на сообщение 171 заработала как надо. Походу я сёдня поумнел на полкило. А Ширу медаль ходатайствую :)
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.