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

Конвертация цитат phpBB 3.0.x -> 3.2.x

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Всем привет!
Возникла необходимость сконвертировать цитаты быстрого ответа phpBB 3.0.x вида:

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

[quote="111";p="222"][/quote]
в цитаты phpBB 3.2.x вида:

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

[quote=test post_id=222 time=0123 user_id=111]
В голову приходит только сложный SQL запрос с поиском подстроки, регуляркой, вложенными select-ами и прочими извращениями. Наверняка этот вопрос уже поднимался на форуме, но поиск ничего не дал. Возможно уже есть готовое решение?
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Pazh »

is_pronin, совет - не изобретайте велосипед и обновите форум с 3.0 на 3.2.5. Одним репарсингом не обойдетесь - эти post_id, time и user_id обрабатывать, т.е. переписывать обработку bbcode quote
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 10 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение nissin »

is_pronin, как-то писал cli расширение для замены. Регулярка такая там:

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

$new_post_text = preg_replace('/\[quote="([^"]+)";p="(\d+)"\]/iu', '[quote="${1}" post_id="${2}"]', $row['post_text']);
Если умеете пользоваться cli причешу и выложу.
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Pazh писал(а): 04.03.2019 19:14 is_pronin, совет - не изобретайте велосипед и обновите форум с 3.0 на 3.2.5
Так я и собираюсь обновить, осталось только придумать решение с преобразованием старых цитат к новому виду. Или вы предлагаете забить на все старые цитаты и получить месиво в постах?
Pazh писал(а): 04.03.2019 19:14 Одним репарсингом не обойдетесь - эти post_id, time и user_id обрабатывать, т.е. переписывать обработку bbcode quote
Ничего не понял... Зачем переписывать обработку bbcode? Они и так всё прекрасно обрабатывают. Мне нужно просто привести старые цитаты к новому виду, чтоб не писать отдельно расширение, которое будет преобразовывать их на лету.
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

nissin писал(а): 04.03.2019 19:18 Если умеете пользоваться cli причешу и выложу.
Был бы премного благодарен!
Интересно, а остальные что, просто обновлялись с потерей всех предыдущих цитат?
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 11 лет 11 месяцев
Благодарил (а): 267 раз
Поблагодарили: 216 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Sumanai »

is_pronin писал(а): 04.03.2019 19:29 Интересно, а остальные что, просто обновлялись с потерей всех предыдущих цитат?
Остальные не использовали моды на ссылку в цитатах.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Pazh »

is_pronin, ничего никуда не теряется, Вы себе сами что-то напридумывали и решили это исправить
Помощь в ЛС/email только за WM или ЮMoney
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Sumanai писал(а): 04.03.2019 19:42 Остальные не использовали моды на ссылку в цитатах.
Естественно я имел в виду тех, кто использовал этот мод. Неужели они просто забили и обновились с потерей всех предыдущих цитат?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 8 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Sheer »

is_pronin писал(а): 04.03.2019 19:25 Зачем переписывать обработку bbcode
Хотя бы затем, что в новой версии движка используется новый парсер.

Отправлено спустя 1 минуту 10 секунд:
is_pronin писал(а): 04.03.2019 19:53 кто использовал этот мод
А таких было много?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Pazh писал(а): 04.03.2019 19:51 is_pronin, ничего никуда не теряется, Вы себе сами что-то напридумывали и решили это исправить
Цитаты вида:

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

[quote="111";p="222"][/quote]
Не обрабатываются стандартными bbcode. Короче, nissin понял о чём я.

Отправлено спустя 1 минуту 13 секунд:
Sheer писал(а): 04.03.2019 19:54 Хотя бы затем, что в новой версии движка используется новый парсер.
Так проще старые цитаты в БД преобразовать к новому виду, чем плясать с bbcode.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 11 лет 11 месяцев
Благодарил (а): 267 раз
Поблагодарили: 216 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Sumanai »

is_pronin писал(а): 04.03.2019 19:53 Неужели они просто забили и обновились с потерей всех предыдущих цитат?
Скорее всего использовали решение подобное от nissin, или продолжают сидеть на 3.0. Как вариант заменой через БД и репарсинг, но я не уверен, что синтаксис SQL это позволяет.
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Sumanai писал(а): 04.03.2019 19:59 Как вариант заменой через БД и репарсинг, но я не уверен, что синтаксис SQL это позволяет.
Да, тупо SQL запросом не обойдёшься. Надо отдельным скриптом по всем постам проходиться, выдёргивать регуляркой и приводить к новому виду.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение Pazh »

is_pronin, и часто Вы пользовались ссылкой на исходный пост в цитате? Из праздного любопытства... ИМХО, бесполезная безделушка, которая Вам добавила геморой при обновлении
Помощь в ЛС/email только за WM или ЮMoney
is_pronin
phpBB 1.4.1
Сообщения: 41
Стаж: 8 лет 4 месяца
Благодарил (а): 9 раз

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение is_pronin »

Pazh писал(а): 04.03.2019 20:04 is_pronin, и часто Вы пользовались ссылкой на исходный пост в цитате?
Очень часто. Бывает пользователь процитирует только часть сообщения из середины топика, где 50k сообщений. По ссылке можно сразу попасть на цитируемый пост и посмотреть его полностью.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 10 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Конвертация цитат phpBB 3.0.x -> 3.2.x

Сообщение nissin »

is_pronin, расширение во вложении.
Обычно в таких случаях пишу простой скрипт, но было желание сделать именно расширением.
Перед заменой желательно сделать резервную копию :)
Командная строка из корня форума:

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

php bin/phpbbcli.php replace:quote
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Вернуться в «phpBB 3.2.x (архив)»