1 (edited by satsana 2021.02.18 10:43)

Topic: Sat BBcode - панель BB-кодов в форме ответа

Расширение Sat BBcode создаёт панель BB-кодов в форме ответа.

Это далеко не первая такая панель в истории punbb, так что прежде чем рассказывать про неё - я вам её покажу.

https://i.gyazo.com/eca9d0501623102bfa15d03abf4974d4.png
https://i.gyazo.com/14e6ad0546cb364d17d77a629b8fed29.png
https://i.gyazo.com/5c9c11eec51c6d5cc688b5fedcd75df9.png

Про стандартные кнопки рассказывать не буду, их назначение и так очевидно. Расскажу про дополнения.

Шрифты. Все приведённые в списке шрифты в коде страницы будут выводиться в соответствии со стандартами css, т.е. с синонимами для поддержки разных операционных систем.
Цвета. Помимо окрашивания текста в определённый цвет предусмотрен вывод маркированного текста с заданным цветом фона.
Отступы. Сначала я хотела оформить их стилевым отступом в начале абзаца, но потом решила вместо этого сделать невидимый блок заданного размера. Его и в середину текста вставить можно.
Разделитель. Изначально он планировался тегом <hr>, позже был изменён на span с классом hr, чтобы не разрывать абзац.
Смайлики. Да-да, они входят в пакет. При установке этого расширения вам придётся отказаться от других отвечающих за смайлы расширений. Код, отвечающий за набор смайлов, можно найти в папке include в файле smile.php. С одной картинкой можно соотнести несколько ассоциаций, что позволяет подхватить использовавшиеся ранее команды для обозначения эмоций. Смайлы можно разделить на несколько групп (там в коде есть закомментированный кусок, отвечающий за добавление второй группы. Результатом этого станет появление нескольких переключаемых вкладок внутри основного блока смайлов. (Если будете добавлять свои смайлы, обратите внимание, что использовать в обозначениях смайлов апостроф и обратную косую черту нельзя.)
Спойлер. В панели обозначен немного непривычно - книжечкой. И да, отдельное расширение, ответственное за спойлер, тоже можете смело сносить.
Скрытие текста. Тег hide позволяет скрыть текст от гостей и пользователей с количеством сообщений меньше заданного. Администраторы и модераторы текущего раздела будут видеть его содержимое независимо от счётчика сообщений.
Обращение к пользователю. Будьте осторожны, пользователи с непривычки пугаются, когда к ним обращаются с использованием тега you! :р Он обращается к каждому читателю по его логину.
Комментарий. Это тег abbr. Добавляет к тексту комментарий, появляющийся при наведении.

Скрытие лишних кнопок. Если какие-то из этих функций кажутся вам лишними, вы можете легко спрятать соответствующую кнопку на панели. Для этого нужно открыть файл options.php, найти в массиве $sat_bbcodes нужную кнопку и закомментировать параметр title. Вот так:
https://i.gyazo.com/92ca2da4990432bce5bdfda1717958ea.png
Кстати, кнопка "email" действительно скрыта. Можете раскомментировать её title, если она вам нужна - и кнопка появится. Помимо неё там есть ещё две скрытые кнопки, они отвечают за добавление списков (сам список и его пункты). Их я спрятала потому, что у меня в парсере вылезла ошибка, со списками связанная (насколько я поняла, она вылезает при использовании седьмой версии php). Если ваша версия парсера и/или php позволяет использовать списки - можете эти кнопки раскомментировать и использовать.

Расширение фиксит warning, связанный с парсом подписей.
Функция PUNBB.pun_bbcode.insert_text из расширения pun_bbcode сохранена для совместимости с другими расширениями. Разметка самой панели тоже частично сохранена, опять же для совместимости.
Тестировалось на американской версии punbb 1.4.5. Теоретически должно быть совместимо с 1.4.4 и с нашей 1.4.5

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

Скачать расширение Sat BBcode  1102.8 Kb  (5)

P.S. Изначально оформление панели выглядело так:
https://i.gyazo.com/1f1cc8127f3bcaa5c5cc469a2dd44c10.png
Деление кнопок на группы сохранено, при желании можно поковыряться в стиле, найти там хвост этого оформления, убрать display: contents у #pun_bbcode_buttons .butgroup и display: flex у #pun_bbcode_buttons - и оно станет таким.
Кнопки оформлены не картинками, а шрифтом, так что им без проблем можно поменять цвет под дизайн.