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

Таблица filter_format

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

Поля

Поле Тип данных Описание
format varchar(255) Машинное имя формата. Уникальный идентификатор, используемый для ссылки на формат в коде и других таблицах.
name varchar(255) Человекочитаемое название формата (например, "Полный HTML", "Ограниченный HTML", "Обычный текст").
cache tinyint Флаг, указывающий, следует ли кэшировать отфильтрованный текст для этого формата. Значение 1 означает, что кэширование включено, 0 - выключено. Кэширование значительно ускоряет работу, но его следует отключать для форматов с динамическим контентом (например, с PHP-фильтром).
status tinyint Статус формата. Значение 1 означает, что формат активен и доступен для использования, 0 - формат отключен.
weight int Вес формата. Определяет порядок, в котором форматы появляются в списках выбора (например, в селекте поля тела материала). Меньшие значения поднимаются вверх.

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

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

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

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

Права доступа к форматам настраиваются через систему ролей и разрешений Drupal. Пользовательская роль должна иметь разрешение "Use the [название формата] text format" для того, чтобы выбрать этот формат при редактировании контента.

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

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

SELECT format, name, weight FROM filter_format WHERE status = 1 ORDER BY weight ASC;

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

  • таблицу filter,
    которая хранит конфигурацию отдельных фильтров для каждого формата
  • таблицу node,
    которая хранит основные данные материалов (нод)
  • таблицу node_revision,
    которая хранит ревизии материалов
  • таблицу node_field_data,
    которая хранит данные полей материалов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить