Давно назревал вопрос о внедрении на форумы
полноценного WYSIWYG-редактора в форме ответа.
Этот скрипт — первая попытка воплотить данную идею в жизнь,
не используя каких-либо сторонних решений:
WYSI — визуальный редактор сообщений
Создан специально для форумов MyBB
WYSI — визуальный редактор, созданный с нуля специально для форумов MyBB. Таким образом, главная его особенность — полная совместимость со всеми стандартными тегами форматирования сообщений, включая блочные (цитаты, код, спойлеры и т.д.). Кроме того, имеется возможность добавлять обработку пользовательских тегов, добавленных через стандартную форму в Администрировании. Отформатированный текст в форме ответа будет выглядеть так же, как и в уже отправленном сообщении.
Имеется возможность в любой момент переключиться в классический режим BB-кодов и обратно (с запоминанием выбора). Внизу формы ответа для этого доступны опции [ BBCode ] и [ WYSIWYG ] соответственно.
С визуальным редактором по умолчанию работает весь стандартный функционал формы ответа, но не ограничиваясь этим. В целях удобства и простоты использования добавлен дополнительный функционал, например, очистка форматирования (в секции Дополнительно), функции для работы с таблицами или форматирование с использованием горячих клавиш.
Реализована подсветка элементов управления (кнопок форматирования), которые применены к выделенному участку введенного текста, как и в полноценных текстовых редакторах (см. скриншот). Повторное нажатие на элемент приводит к снятию соответствующего типа форматирования.
В числе прочего, скрипт предназначен для упрощения взаимодействия и улучшения пользовательского опыта в работе с формой ответа, поэтому в дальнейшем планируется заменить им существующие устаревшие решения, в частности, Мгновенный предпросмотр сообщений.
В скрипте имеется поддержка расширенного функционала от сервиса, такого как HTML в сообщениях. HTML-вставки можно редактировать в реальном времени и сразу же видеть результат.
Визуальный редактор предусматривает частичную поддержку имеющихся сторонних решений для формы ответа, например, скрипты смены регистра или раскладки выделенного текста.
Реализована совместимость с утилитой MyBBCode от @kozhilya (подробнее см. здесь), что позволяет обрабатывать любые элементы (в том числе пользовательские BB-теги) в редакторе таким же образом, как они будут обработаны в сообщениях.
Встроенная поддержка "быстрого" редактирования и отправки сообщений с использованием AJAX. Предпросмотр в режиме визуального редактора отключен за ненадобностью, но включается и работает привычным образом в режиме BB-кодов.
Имеется поддержка вставки форматированного текста из текстовых редакторов, например Word, с сохранением основного форматирования (начертание, цвет, размер и т.п.) и обратно. При вставке содержимого в виде BB-кодов они также автоматически преобразуются в визуальный формат.
Поддерживаются все современные браузеры. Функционал доступен в полной мере также и на мобильных устройствах.
Функционал является экспериментальным, ввиду отсутствия прецедентов реализации чего-то подобного на MyBB.
В связи с этим на данном этапе (на время предварительной отладки) визуальный редактор предоставляется в формате закрытого бета-тестирования.
Чтобы получить установочный код и инструкцию, обращайтесь в личные сообщения, указав адрес вашего форума.Приветствуется участие в бета-тестировании для всех желающих, поскольку это позволит как можно скорее устранить недоработки и выпустить стабильную версию функционала.
При необходимости предоставлю помощь в адаптации существующих на вашем форуме пользовательских тегов и других возможностей под использование совместно с визуальным редактором.
Визуальный редактор уже установлен на этом форуме, так что здесь можно наблюдать его работу в полной мере.
Поскольку функционал экспериментальный и на данный момент проходит этап бета-тестирования, возможно наличие ошибок и некорректной работы в некоторых случаях, в случае обнаружения таковых просьба сообщать об этом в данной теме.
Позже будет добавлена подробная документация для разработчиков, описывающая все возможности взаимодействия с пользовательским функционалом и расширением существующего стандартного.