MyBBCode — документация
Сообщений 1 страница 5 из 5
Поделиться12021-04-21 14:19:12
MyBBCode
MyBBCode — гибкий инструмент для работы с BB-кодами на форумах, основанных на платформе mybb.ru.
Обзор / Документация
Разработано kozhilya, 2020 — 2021. Текущая версия — 1.2.
Поддерживаемые браузеры | Неподдерживаемые браузеры |
|
|
Поделиться22021-04-21 14:55:56
Установка
Чтобы установить скрипт, нужно в начало HTML-верха ("Администрирование" / "Формы" на форумах mybb.ru) добавить следующий загрузчик:
<!-- Инструмент для добавления bb-кодов --> <script src="https://mybb.kozhilya.ru/script/mybbcode.min.js"></script> <!-- END Инструмент для добавления bb-кодов -->
Что бы использовать определённую версию (сейчас в таком виде доступна только версия 1.2), можете использовать такой вид кода:
<!-- Инструмент для добавления bb-кодов --> <script src="https://mybb.kozhilya.ru/scripts/mybbcode/1.2/program.min.js"></script> <!-- END Инструмент для добавления bb-кодов -->
Обратите внимание, что скрипт сам по себе ничего не делает. Для работы необходимо добавить дополнительный код (так же в HTML-верх), в котором необходимо задать, какие именно изменения предполагаются.
Обратите внимание, что этот инструмент не делает ничего самостоятельно, и для работы необходимо добавить дополнительный код. Все дополнительные объявления, использующие MyBBCode также должны быть добавлены в HTML-верх после загрузки утилиты (после кода, указанного выше).
Объявления обработчиков и других элементов MyBBCode в HTML-низ возможна, но крайне не рекомендуется, так как это не является ожидаемым поведением.
Поделиться32021-04-21 19:58:02
Поля класса
loadingText (добавлено в версии 1.0) — Текст, который будет установлен при вызове set_html(false) в обработчиках тегов, добавленных при помощи метода addTag.
editor (добавлено в версии 1.2) — Набор правил для генерации кнопок формы ответа. Удаление полей настоятельно не рекомендуется.
Список полей объекта:
— порядок отображения кнопок формы ответа.
wrapper — массив из 2 значений, которые являются HTML-кодами, которые будут добавлены до и после списка кнопок.
generator — метод для генерации кнопок. Методу будут переданы 2 значения:
key — название кода, ключ объекта FORUM.editor.
value — набор правил кода, соответствующее ключу key значения объекта FORUM.editor[key].
specials — дополнительные элементы, которые могут быть добавлены наряду с другими формы ответа:
'|' — семантическая запись для разделителя между кнопками.
Для работы необходимо использовать дополнительные CSS-правила для #form-buttons td.form-buttons-splitter.'~' — семантическая запись для заполнителя пространства между кнопками.
Для работы необходимо использовать дополнительные CSS-правила для #form-buttons td.form-buttons-filler.'\n' — перенос кнопок на новую строку.
Генерация кнопок происходит только в том случае, если editor.buttons имеет значение, отличное от false.
Генерация кнопок происходит при срабатывании события pun_main_ready, а также при вызове метода generateEditorButtons.
Поделиться42021-04-22 16:10:50
Методы класса
addAdapter(callback)
Добавлено в версии 1.0.
Добавление общих обработчиков, которые будут применяться к сообщениям.
Аргумент функции:
callback — функция, которая будет вызываться при нахождении сообщения. Ей на вход будет подан единственный аргумент:
container — jQuery-объект, ссылающийся на единственный контейнер с добавленным отображением.
Для события spoiler.firstOpen container будет ссылаться на <blockquote> открытого спойлера.
Для событий pun_main_ready, pun_preview и pun_post callback будет вызван для каждого подходящего <div class="post-content"> отдельно.
addTag(name, callback)
Добавлено в версии 1.0.
Добавление обработчиков пользовательских тегов, добавленных через систему пользовательских тегов (/admin_forms.php — "Пользовательские bb-теги"). Для корректной работы обработчика рекомендуется (но не необходимо) указать для тега флаг u (unique).
Аргументы функции:
name — строка, название тега. Должно совпадать с названием тега в поле "Пользовательские bb-теги".
callback — функция, которая будет вызываться по событию. Ей на вход будет поданы 3 аргумента:
elem — jQuery-объект, ссылающийся на единственный контейнер bb-кода.
selector — уникальный селектор тега, который можно использовать, например, для генерации CSS-кода. Для использовании в JS рекомендуется использовать elem.
set_html — функция для упрощённой установки html-значения elem.
Аргумент set_html полезен, когда требуется загрузка данных. Если вызвать set_html(false), то на месте тега будет отображена надпись "Содержимое загружается..." Изменить этот текст можно переопределив значение MyBBCode.loadingText.
registerEvent(name, resolver)
Добавлено в версии 1.0.
Добавление нового события, который будет запускать обработчики сообщений и обработчики пользовательских кодов.
Аргументы функции:
name — отслеживаемое DOM-событие, используемое методом jQuery.on(name), и которое можно вызвать методом jQuery.trigger(name).
resolver. Это должна быть функция, которые на основе объекта события (event, он подаётся на вход этой функции), определяет, какие контейнеры должны быть обработаны обработчиками.
processPostContents(container)
Добавлено в версии 1.0.
Обработка контейнера сообщения всеми зарегистрированными обработчиками.
Не рекомендуется к использованию! Метод станет недоступен, когда предложения к стандарту о приватных полях и методов ES6-классов получит достаточную браузерную поддержку. Используйте вместо него метод registerEvent.Аргумент функции:
container — jQuery-объект, ссылающийся на контейнер (или контейнеры), который содержит необработанный .
addAuthorEditor(callback)
Добавлено в версии 1.1.
Добавление обработчика, изменяющего столбец автора сообщения.
После обработки, к ul-элементу будет добавлен класс mybbcode-processed; если элемент имеет этот класс, обработчик не будет применён.Аргументы функции:
callback — функция, которая будет вызываться при нахождении сообщения. Ей на вход будет подан единственный аргумент:
container — jQuery-объект, ссылающийся на единственный контейнер со списком полей столбца автора <ul>.
addEditorButton(key, data, [before])
Добавлено в версии 1.2.
Добавление кнопки формы.
Аргумент функции:
key — идентификатор кнопки, который будет добавлен к td.button#button-key.
data — данные поля, которые будут использоваться стандартными скриптами. Обычно в это объекте будет 2 поля:
name — строка, название кнопки.
onclick — функция, которая будет вызвана при нажатии кнопки.
Этому объектов можно указать и другие поля, однако указанные выше обязательны.
before (необязательный аргумент) — указание, перед каким элементом необходимо добавить кнопку. Допустимые значения:
Число i — тогда кнопка будет добавлена перед i-м элементом массива MyBBCode.editor.buttons.
Строкой-идентификатором кнопки key — тогда новая кнопка будет помещена перед кнопкой с идентификатором key.
После объявления при помощи этого метода, объект data будет доступен после объявления как FORUM.editor.key.
generateEditorButtons()
Добавлено в версии 1.2.
Сгенерировать заново строку с кнопками редактора.
Поделиться52021-04-22 16:49:57
Журнал изменений
1.0
Начальная версия.
Обработка событий pun_main_ready, pun_preview, pun_post, pun_edit, spoiler.firstOpen.
Методы addAdapter, addTag.
1.1
Добавлен метод addAuthorEditor.
1.2
Добавлены поле editor и методы addEditorButton и generateEditorButtons.