Разуплотнение разметки с помощью BBcode

Проблемы с установкой или работой 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) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Мягколапый Попрыгун
phpBB 1.0.0
Сообщения: 4
Стаж: 12 лет 10 месяцев

Разуплотнение разметки с помощью BBcode

Сообщение Мягколапый Попрыгун »

Существует баг, который способен сломать разметку с помощью обычного BBcode.
Версия phpbb 3.0.12, но баг работает и на других версиях.
Баг работает на всех шаблонах.
Баг работает во всех браузерах.
Поиск не дал решения проблемы.

Собственно ошибка:
[тег1][тег2][/тег1][/тег2] даёт текст, оформленный тегом тег1, до конца поста.

Мои предположения:
Так как второй тег открывается сразу после первого, предполагается, что сначала закроется второй, а потом первый.
Соответственно, первый тег считается
1) Открытым до конца 2 тега (согласно системе, которая занимается переводом бб кодов в хтмл).
2) Неактуальным для текста, который идёт после закрытия 1 тега (согласно системам, которые проверяют бб код на ошибки вроде "превышен размер шрифта" или "слишком много вложенных цитат"), так как формально, с точки зрения кода, никаких ошибок нет. Формально же тег закрыт.
Перевод бб в хтмл и проверка на недопустимые значения зачем-то разделены и действуют независимо. И смотрят на разные нюансы, которые по отдельности можно вот так обмануть.
У двух систем разное поведение и разная реакция на одно и то же.
В проверку надо прописать одну фишку: чтобы не допускала отправки сообщения, в котором содержатся теги, закрытые непоследовательно. Как это можно сделать? Меня не устраивает такое положение дел у меня на форуме. Здесь-то необязательно фиксить, это забавно.

Пример разуплотнения разметки:

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

[size=200][quote][/size][size=200][b][/size][size=200]Делается вот так.[/size][/b][/quote]
Вот код того, что я сделал:

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

[size=200][quote][/size][size=200][b][/size][size=200]Делается вот так.[/size][/b][/quote]
И до конца поста у меня будет работать шрифт 200%, а если я добавлю этот тег снова - будет 400%.

Делаю стандартный размер с помощью тега size=50, но при этом, как видите, у меня расстояние между строками остаётся соответствующим 200%. Видите?
Я уже молчу о таких нюансах, как возможность написать весь свой пост над аватаркой. Но это нужны теги list. Лучше не буду делать совсем вырвиглазный пост, чтобы моя просьба не потеряла читабельность, но скриншоты того, что натворил на своём форуме в чисто тестовых целях, могу предоставить.

Вариантов того, что натворить с помощью этого бага, очень много. Мне нужен один конкретный фикс, не дающий закрывать теги не по порядку.

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

[list][u][/list]
[list][quote][/list][list][i][/list]Всем удачи.[/i][/quote][/u]

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

[list][quote][/list][list][i][/list]Всем удачи.[/i][/quote]
Последний раз редактировалось Татьяна5 22.11.2013 16:12, всего редактировалось 1 раз.
Причина: добавлены [code]
Это сообщение состоит из сорока восьми символов.
Аватара пользователя
Мягколапый Попрыгун
phpBB 1.0.0
Сообщения: 4
Стаж: 12 лет 10 месяцев

Re: Разуплотнение разметки с помощью BBcode

Сообщение Мягколапый Попрыгун »

Кхм, поставить всё в code не является решением проблемы.
Это сообщение состоит из сорока восьми символов.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Разуплотнение разметки с помощью BBcode

Сообщение MIT »

О, мы обсуждали этот баг лет много назад. С ним можно добиться куда как более весёлых результатов :)
Он существовал всегда и починить его без полного переделывания парсера тегов почти невозможно. К сожалению.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 4 месяца
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Разуплотнение разметки с помощью BBcode

Сообщение xisp »

В 3.1 хотят переписать парсер ббкодов, но пока вроде не начали. Будет надеяться что всё таки перепишут.
phpBBex
Аватара пользователя
Мягколапый Попрыгун
phpBB 1.0.0
Сообщения: 4
Стаж: 12 лет 10 месяцев

Re: Разуплотнение разметки с помощью BBcode

Сообщение Мягколапый Попрыгун »

MIT писал(а):О, мы обсуждали этот баг лет много назад. С ним можно добиться куда как более весёлых результатов :)
Он существовал всегда и починить его без полного переделывания парсера тегов почти невозможно. К сожалению.
Ну... мы у себя разметку смогли зафиксировать, чтобы не разуплотнялось так, как разуплотняется на этом форуме.

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

[list][quote][/list]Тут с одного "лист" всё поехало.[/quote]

[size=200]А со шрифтами у нас проблема осталась. Есть какие-нибудь частные решения каждой из известных проблем? Впихнём хотя бы их.[/size]
Это сообщение состоит из сорока восьми символов.
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Разуплотнение разметки с помощью BBcode

Сообщение владимир1983 »

Занимательно.

Добавлено спустя 24 секунды:
Зачётно.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Разуплотнение разметки с помощью BBcode

Сообщение rxu »

Мягколапый Попрыгун
Я думаю, здесь уже достаточно упражнений. Доказывать ничего никому не надо.
Вам уже сказали, что баг известный, и разработчики его не будут исправлять в ветке 3.0, во всяком случае.
Изображение

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