Добавляем фильтр в wysiwyg в Drupal

Пример добавления обработчика (фильтра) текста в rich editor.

Требуется всего два шага для реализации нового фильтра:

  • имплементировать hook_filter_info(), и саму функцию фильтра;
  • прикрепить фильтр к нужному вам формату текста в админке сайта — /admin/config/content/formats.

Для примера рассмотрим как создать фильтр, добавляющий bootstrap css обертку для ваших таблиц. Если вы используете bootstrap фреймворк на вашем сайте, то, чтобы сделать таблицы <table> mobile-friendly, требуется обернуть их в специальный контейнер:

<div class=»table-responsive» /> контейнер позволяет выполнять горизонтальный скролл таблицы, если её ширина на конечном устройстве больше ширины экрана.

Объявим фильтр в нашем модуле MYMODULE.

В нашем случае фильтр очень простой, не требует настроек. Но зацепка (hook_filter_info) позволяет передать также параметры: settings callback и default settings. Так вы сможете создать форму для настроек фильтра.

Подсказка для фильтра выводится как описание возможностей выбранного формата текста.

Осталось только реализовать сам фильтр.

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

Остаётся только прикрепить фильтр у нужному формату текста.

Мало букафф? Читайте есчо !

Удаление поля из entity в Drupal программно

Январь 10, 2020 г.

Обычно такой код требуется писать в файлах .install, для модификации структуры ваших полей при обновлении модуля, чтобы не проделывать эту операцию вручную. Также предварительно стоит подумать о переносе данных из удаляемого поля в какое то новое место. ...

Читать

Как изменить длину поля (max length) после создания, сохраняя данные

Май 15, 2018 г.

Друпал не позволяет менять длину текстового поля после создания. Функция field_update_field также нам не поможет - будет сгенерирована соответствующая ошибка, что поле уже содержит данные и изменить его длину нельзя. Это можно проделать вручную, зная ...

Читать

Использование cache API Drupal 7

Май 14, 2019 г.

Изучение API удобно начинать с шаблонов кода, которые демонстрируют технику использования. Пример логики использования/создания элемента кеша [crayon-69f42a3035f45866398943/] Обратите внимание на дополнительные скобки вокруг $cache = cache_get($cache_id). ...

Читать

Получить имя поля ключа entity в Drupal 7

Апрель 6, 2021 г.

У меня эта задача возникла при работе с формами, где формы содержат поля '#entity' и '#entity_type'. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node - nid, для file - fid и ...

Читать
 

Комментарии к «Добавляем фильтр в wysiwyg в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: