Массовая замена бб-кода

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Shredder
Former team member
Сообщения: 2267
Стаж: 17 лет 10 месяцев
Благодарил (а): 284 раза
Поблагодарили: 584 раза

Re: Массовая замена бб-кода

Сообщение Shredder »

Booker писал(а):Наверное таки придётся менять нотепадом в одной таблице вот так:
Видимо, здесь будет самый надёжный вариант.
Booker писал(а):Правда, не уверен, что справлюсь с "шаманством", если что-то не совпадёт:
Формат кодов в вашем случае совпадает.

Вот только если не заработало даже после репарсинга, то сомневаюсь, что и новые изменённые коды будут работать... Какой-то странный случай.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Массовая замена бб-кода

Сообщение Pazh »

Booker писал(а):Наверное таки придётся менять нотепадом в одной таблице вот так:

c61 писал(а):Shredder, про это-то я и забыл, но [youtube: -> [video: и т.п. можно поменять смело))
0. ДЕЛАЕМ ПОЛЬНЫЙ БЭКАП таблицы phpbb_posts!!!
1. сделать экспорт не всей таблицы phpbb_posts, а только таких строк:
делаем запрос select * from phpbb_posts where lower(post_text) like '%youtube%'
Идем вниз страницы и в разделе "Использование результатов запроса" нажимаем на Экспорт, при экспорте поставить "Использовать оператор при сохранении данных UPDATE" и снять галочку "Сохранение бинарных полей в шестнадцатеричном виде (к примеру, "abc" станет 0x616263)"
2. Сколько постов на форуме? Если очень много, размер бэкапа даже одной таблицы будет приличный - возможно придется юзать что-то типа emeditor (продвинутый текстовый редактор для открытия БОЛЬШИХ текстовых файлов)
3. делаешь замену в текстовом редакторе
4. заливаешь измененный бэкап назад

Аналогично с phpbb_privmsgs если там был разрешен youtube
Помощь в ЛС/email только за WM или ЮMoney
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 15 лет 4 месяца
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Массовая замена бб-кода

Сообщение Booker »

Всё выполнено.
Постов 336 000. (В принципе, нотепад даже с полным файлом phpbb_posts справляется, хотя и с трудом: немного подвисает при прокрутке файла на нижние строки.)
Результат - закрывающий тег везде появился [/video] вместо [/youtube], а вот открывающий где-то поменялся, а где-то остался старый. Там, где поменялись оба, всё равно они выглядят тегами, а не самим видео. Попробую ещё раз перепарсить коды.
При загрузке изменённого бекапа назад в таблицу на сервере не надо ведь удалять старый вариант строк? Они сами заменяются на загружаемый вариант, верно?
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Массовая замена бб-кода

Сообщение Pazh »

Booker заменяться если только было выбрано Использовать оператор при сохранении данных UPDATE, в противном случае будет ошибка дулирования первичного ключа и ничего не запишется в базу.
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Likbezz
phpBB 1.4.3
Сообщения: 79
Стаж: 14 лет 5 месяцев
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Re: Массовая замена бб-кода

Сообщение Likbezz »

1. Делаем полный бэкап таблицы phpbb_posts!
2. Выполняем запрос типа:

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

UPDATE `phpbb_posts`SET post_text = REPLACE (REPLACE (post_text, '[youtube', '[video'), '[/youtube', '[/video') where lower(post_text) like '%[/youtube%'; 
Где: video заменить на любой свой.
Проверку ставим именно на закрывающий тег, так как не-bbcode обычно отличается именно по наличию закрывающего тега..
3. Проверяем.
---
Хрен, положенный на мнение окружающих, ведет к счастью и спокойствию..
Аватара пользователя
hd321kbps
phpBB 2.0.3
Сообщения: 366
Стаж: 14 лет 6 месяцев
Откуда: Россия, Крым, Армянск
Благодарил (а): 199 раз
Поблагодарили: 350 раз

Re: Массовая замена бб-кода

Сообщение hd321kbps »

как бы заметить бб-код к примеру
текст 
на
текст 

Отправлено спустя 5 минут 7 секунд:

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

UPDATE `phpbb_posts`SET post_text = REPLACE (REPLACE (post_text, '[spoiler="', '[spoiler='), '[/spoiler', '[/spoiler') where lower(post_text) like '%[/spoiler%';
вставляет spoiler=" а как вставить закрывающие "?
Аватара пользователя
hd321kbps
phpBB 2.0.3
Сообщения: 366
Стаж: 14 лет 6 месяцев
Откуда: Россия, Крым, Армянск
Благодарил (а): 199 раз
Поблагодарили: 350 раз

Re: Массовая замена бб-кода

Сообщение hd321kbps »

Вообще было бы хорошо добавить расширенный бб-парсинг в STK для таких случаев.

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