НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
127 of 182 menu

Таблица filter

Таблица filter является ключевой частью системы текстовых форматов и фильтров в Drupal. Она определяет, какие именно фильтры (например, преобразование строк в ссылки, фильтрация HTML-кода, применение PHP-кода) активны для каждого текстового формата, а также хранит их индивидуальные настройки и порядок (вес) применения.

Поля

Поле Тип данных Описание
format varchar(255) Машинное имя текстового формата, к которому применяется данный фильтр. Внешний ключ для таблицы filter_format.
module varchar(64) Имя модуля, который предоставляет данный фильтр (например, filter, php).
name varchar(32) Машинное имя самого фильтра (например, filter_url, filter_html, php_code).
weight int Целое число, определяющее порядок применения фильтров внутри одного формата. Фильтры применяются от меньшего веса к большему.
status int Статус фильтра: 0 - отключен, 1 - включен для данного формата.
settings blob Настройки фильтра, сериализованные в бинарный формат. Могут содержать различные параметры, например, список разрешенных HTML-тегов для фильтра filter_html.

Как это работает

Администратор сайта настраивает текстовые форматы (например, "Полный HTML", "Ограниченный HTML", "Обычный текст") на странице /admin/config/content/formats. Для каждого формата выбирается набор фильтров, которые будут обрабатывать пользовательский текст в этом формате.

Каждый раз, когда администратор добавляет фильтр к формату, меняет его порядок, включает/отключает или изменяет его настройки (например, список разрешенных тегов), в таблицу filter записывается или обновляется соответствующая запись. Поле format связывает эту конфигурацию с конкретным текстовым форматом, а комбинация полей module и name идентифицирует сам фильтр.

Когда пользователь сохраняет текст, выбрав определенный формат, система фильтров Drupal загружает все активные (status = 1) фильтры для этого формата, сортирует их по полю weight и последовательно применяет к тексту. Настройки каждого фильтра предварительно десериализуются из поля settings.

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

Пример SQL-запроса

Посмотреть все активные фильтры для формата "full_html", отсортированные по весу, можно следующим запросом:

SELECT f.name, f.module, f.weight, f.settings FROM filter f WHERE f.format = 'full_html' AND f.status = 1 ORDER BY f.weight ASC;

Смотрите также

  • таблицу filter_format,
    которая хранит основные настройки текстовых форматов
  • таблицу cache_filter,
    которая хранит кэшированный результат обработки текста фильтрами
  • таблицу node,
    которая хранит материалы (ноды), чье тело часто обрабатывается фильтрами
  • таблицу comment,
    которая хранит комментарии, также проходящие через систему фильтров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить