Странное ограничение знаков в bbcodes.

Попробую четко объяснить проблему.
Прежде всего скажу, что: максимальное количество символов в сообщении:
Количество символов, разрешенное в сообщении — установлено 0.

На форуме (кроме всего прочего) публикуются переводы участников, библиографии авторов детективного жанра и так далее. Как правило, они очень большие.

Для всех «длинных» текстов используются различные bbcode. Для примера: more (скрытый текст), scroll, textarea, Tabs BBCode. Вкладки в сообщении. (вместе с ББ код Таблица), legend.

Проблема: В некоторых bbcode есть непонятный баг — «критическое» число знаков. Если больше (примерно) 23 - 24 страницы ворда (плюс минус 6000 слов; то есть примерно 47000 знаков с пробелами), то эти ббкода работать не хотят.

Все работает без проблем в textarea, more, legend. Хоть в разы увеличивай текст.

А в bbcode scroll, вкладки и таблице, где это намного важнее, начинаются траблы. Как только количество знаков превышает «критическое» число, то bbcode начинает косячить. В частности:
Скролл «вылетает». То есть весь текст, но уже не в скролле, а как в обычном сообщении. Только в начале и в конце тэги — [scroll] и [/scroll]. А в bbcode “вкладки» вместе с bbcode “таблица”, сообщение просто “исчезает” — оно пустое. Вместо сообщение — пустое место.

Я провел пару экспериментов. Применял вкладки без ббсода таблиц, просто ббкод “таблица” без ббкода “вкладки”. Результат один — сбой.


Причем все это никак не связано с количеством инфы в сообщении. Вместо одного скролла для рассказов делаю два (искусственно разбивая рассказ на две части) и все прекрасно помещается в одном сообщении. И тоже самое с вкладками/таблицами. Делаю вторую и все ок.

Эти непонятки критичны для моего форума. К примеру, разбивая рассказ на две части, нужно быть аккуратным, чтобы во втором скролле (в видимой его части) не было спойлеров (чего-то раскрывающего секрет произведения) , что для детективной беллетристики — «смерть». О библиографиях я даже не говорю. Вместо того, чтобы была одна таблица с десятком вкладок (романы, рассказы циклы, герои, награды, кинемотография и так далее), приходится делать несколько таблиц и в них по пару вкладок.

Помогите все таки разобраться. В чем проблема? В чем разница в HTML заменах этих ббкодов — если одни работают нормально, а другие «капризничают».
Комментарии: 29

CabinetAdmin 18 дек 2017, 18:28 Сообщение

Питер писал(а): Текст построен так:
В примере только открывающие теги. Неправильно.
Питер писал(а): Сейчас сделал так:
Тоже неправильно построение ббкодов.
Питер писал(а): Второй:
Опять не правильно.

Ббкод не должен открываться или закрываться через другой.
У ббкода должен быть открывающий ббкод: и закрывающий: У замены ббкода должны быть открывающие и закрывающие теги.

Правильно:

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

[url=...][img]...[/img][/url]
Неправильно:

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

[url=...][img]...[/url][/img]


зы. Нет закрывающего тега в ббкоде у которого замена начинается с:

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

<div oncontextmenu="return false;" oncopy="return false;">
т.е. в конце нет </div>.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

ПитерПетр 18 дек 2017, 18:38 Сообщение

Вот честно говоря, ничего не понял. Причем тут url? На скролле и ноукопи тоже вроде все есть.
CabinetAdmin писал(а): Нет закрывающего тега в ббкоде у которого замена начинается с:
Это Замена HTML ноукопи.

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

<div oncontextmenu="return false;" oncopy="return false;">{TEXT}</div>
Все на месте.
  • 0

CabinetAdmin 18 дек 2017, 19:03 Сообщение

Питер писал(а): Все на месте.
Заменить на:

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

<span oncontextmenu="return false;" oncopy="return false;">{TEXT}</span>
Питер писал(а): Причем тут url?
Мне надо было написать что это пример? Разве так не понятно? :)
Речь идёт о правильно построенных комбинациях, все ваши примеры построены неправильно.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

ПитерПетр 18 дек 2017, 19:14 Сообщение

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

Я знаю какой порядок должен быть. Просто "поиграл" перестановками, чтобы бы определить взаимодействие одного на другой. И почему она вообще должна быть?
  • 0

CabinetAdmin 18 дек 2017, 19:52 Сообщение

Потому что так работает phpbb.

А если просто добавить oncontextmenu="return false;" oncopy="return false;" в ббкод скролла?
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

ПитерПетр 18 дек 2017, 20:01 Сообщение

В каком именно месте замены HTML?
Для проверки.
Хотя это не самое лучшее решение. Скролл есть во многих местах, а ноукопи применятся только в рассказах.
  • 0

ПитерПетр 30 апр 2021, 08:49 Сообщение

   До сих пор бьюсь с этой проблемой. Все-таки пост с двумя (а то и тремя и даже больше блоками скролбаров) не очень, мягко говоря, эстетично.
   Возникло пару вопросов.
   а) на форуме есть два подобных ббкода. У них разные HTML замены. Ну и фоны разные. Удалить ненужный нет возможности, так как отыскать в массе сообщений уже старевший, это тот еще геморрой. Отсюда вопрос: может ли существование двух подобных (названия у них чуть отличаются) ббкодов, как-то влиять на проблему?
   б) на форуме есть много ранее установленных модификаций, причем установленных уже энное лет назад. Какие вообще модификации могут как то влиять на проблему. И вообще, где возможно в самом движке быть какое-то ограничение.
  в) может есть какие-то иные варианты, скажем так, ручной установки в конкретных сообщениях скролбара. Даже не с помощью ббсода, а по варианту обычной страницы html. В любом случае, такого рода посты делаю только я, а в обсуждениях эта опция не нужна в принципе. То есть заглавное сообщение темы сделать как html страницу, ну а дальше как обычно на форумах. Такое вообще возможно? Уж очень нужно найти решение этого бага.
  
  • 0

CabinetAdmin 01 май 2021, 08:13 Сообщение

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

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

в. Хм... Можно посмотреть в сторону Knowledge Base (База Знаний). Насколько я помню там есть возможность при создании указывать форум в котором будут, но наверняка не помню для каждой статьи или для всех разом.
Возможно есть какие нибудь моды для создания сообщения в чистом html, как для последних версий 3.1/3.3, нужно искать, тестировать.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

ПитерПетр 01 май 2021, 10:57 Сообщение

Заколдованный круг какой-то. В самом деле. МОДы портала, Новые темы, кураторы тем, кто просматривал тему, различные мелочи типа спасибки, настроение, склеивание сообщений написанных от одного участника в течении часа никак не могут влиять. Ограничение в самом движке — как я понимаю, это “максимальное количество символов в сообщении (а админке) — установлено “0”, то есть без ограничений. Да и вообще, без ббкода, любое сообщение (немыслимое количество символов) спокойно проходит, что уже априори означает, что как таковых ограничений в этом плане, попросту нет. Получается, что только что-то связано с блоками текстового поля. Блоки вообще-то упомянуты в моде портала, но я в куче настроек этого мода не вижу ничего такого. Может есть какие-то варианты не блочные? Просто уже даже не знаю в каком еще направлении “копать”.
  • 0

ПитерПетр 07 июл 2021, 17:44 Сообщение

  На форуме сотни сообщений с скроллом и разными доп тэгами. Может ли ошибка в любом из них (любая: незакрытый тег, неправильная расположение порядка открывающих и закрывающих) влияет на повтор проблемы в новых сообщениях? Иными словами: нужно ли проверять каждое сообщение на предмет ошибки (практически Mission: Impossible или скорее все-таки действие какого-то неправильного установленного мода и надо рыть в этом направлении.
  • 0

CabinetAdmin 09 июл 2021, 23:13 Сообщение

На новые не должно распространяться. Незакрытый тег может просто поломать страницу, обычно это сразу видно.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

ПитерПетр 10 июл 2021, 23:49 Сообщение

CabinetAdmin, Теги все закрытые, но в массе старых сообщений нарушен порядок:открывающие скролл+ноукопи —— закрывающие скролл+ноукопи.
  • 0

ПитерПетр 13 июл 2021, 17:30 Сообщение

  Возможно сегодняшний случай поможет понять причину. Обнаружил чисто случайно.
На форуме в теме имеется три старых сообщения. В два из них вставляются нормально. Скроллбар работает. А в третье никак. Сообщения для разных заготовок и ничем не отличаются.
Все вываливается из скроллбара, “голый” текст и открывающий и закрывающий тэги как обычный текст по краям.
  • 0

ПитерПетр 10 авг 2021, 15:36 Сообщение

  Заранее прошу прощения за в некотором роде “кросспостинг’ (не совсем точное название — все-таки пишу в той же теме).
  Прошерстил все сообщения со скроллом. Исправил все неправильно расставленные тэги (хотя как я понял, неправильность расстановки тэгов нарушает только конкретный пост, тем не менее сделал и это). Еще раз проверил все возможные настройки. Даже сделал новый отдельный форум и там новую темы с чистым скроллом. Бесполезно. Любой текст любого размера спокойно проходит на форум. Как только ставлю его в какой-то блок (неважно скролл, вкладки, текстовые площадки и тому подобное, все выкидывает в обычный текст с bbcode в начале и конце текста. Да. Даже общался с техподдержкой хостинга, на котором установлен форум. Никаких ограничений.
  Простой вопрос: в каком направлении еще возможно рыть? Реально проблема, которая мешает.
  
  • 0

CabinetAdmin 13 авг 2021, 16:35 Сообщение

Что-то я выпал из жизни, прямо совсем некогда было.... Прошу прощения.

Я где-то, когда-то слышал, что вроде как есть некое ограничение на количество знаков в сообщении в phpbb 3.0. Не программное ограничение, а самого движка, вроде как больше ему переварить сложно, врать не буду, но мне помнится о 100 т. знаков.

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

зы. Если сами не можете, можете мне скинуть такой текст или ссылку дать на своём форуме на такой текст, я попробую. У меня есть тестовые форумы всех версий.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Похожие темы