Демонстрационный форум kozhilya

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Демонстрационный форум kozhilya » MyBBCode » MyBBCode — документация


MyBBCode — документация

Сообщений 1 страница 5 из 5

1

MyBBCode

MyBBCode — гибкий инструмент для работы с BB-кодами на форумах, основанных на платформе mybb.ru.

Обзор / Документация

Разработано kozhilya, 2020 — 2021. Текущая версия — 1.2.

Поддерживаемые браузеры

Неподдерживаемые браузеры

  • firefox Firefox 43+

  • Chromium 49+

    • chrome Google Chrome

    • edge Microsoft Edge 13+

  • safari Safari 11+

  • opera Opera 36+

  • internet-explorer Internet Explorer (все версии)

  • opera Opera Presto (в т.ч. Opera Mini)

2

Установка

Чтобы установить скрипт, нужно в начало 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-низ возможна, но крайне не рекомендуется, так как это не является ожидаемым поведением.

3

Поля класса

loadingText (добавлено в версии 1.0) — Текст, который будет установлен при вызове set_html(false) в обработчиках тегов, добавленных при помощи метода addTag.


editor (добавлено в версии 1.2) — Набор правил для генерации кнопок формы ответа. Удаление полей настоятельно не рекомендуется.

Список полей объекта:

  • buttons — порядок отображения кнопок формы ответа.

  • 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.

4

Методы класса

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.

Сгенерировать заново строку с кнопками редактора.

5

Журнал изменений

1.0
Начальная версия.
Обработка событий pun_main_ready, pun_preview, pun_post, pun_edit, spoiler.firstOpen.
Методы addAdapter, addTag.


1.1
Добавлен метод addAuthorEditor.


1.2
Добавлены поле editor и методы addEditorButton и generateEditorButtons.


Вы здесь » Демонстрационный форум kozhilya » MyBBCode » MyBBCode — документация