Типы материалов и поля в Drupal: живой пример для сайта
На примере редакционного сайта разберём, когда в Drupal создавать новый тип материала, а когда достаточно поля. Покажем структуру обзора, связи с таксономией, настройки формы и типичные ошибки, из-за которых контент сложно поддерживать.

В Drupal новый тип материала нужен не для каждой новой страницы. Если редактору приходится вручную собирать заголовок, цену, рейтинг и характеристики в одном длинном поле, структура уже выбрана неправильно. На живом примере редакционного сайта разберём, как создать тип материала «Обзор», какие поля ему нужны, что вынести в таксономию и как проверить результат в Drupal 10.x и 11.x.
Сценарий: сайт с обзорами техники
Представим сайт, где редакция публикует новости, обычные статьи и обзоры устройств. Для новости достаточно заголовка, текста, изображения и даты публикации. У обзора появляются дополнительные данные: производитель, цена на момент публикации, рейтинг, плюсы, минусы и ссылка на магазин.
Можно хранить всё это в теле материала. Но тогда цена окажется обычным абзацем, рейтинг будет записан то как «8/10», то как «4 звезды», а сравнить обзоры по производителю станет почти невозможно. Поиск, фильтры и повторное использование данных тоже быстро превратятся в ручную работу.
Тип материала описывает смысл публикации, а поле — отдельное свойство этой публикации. Если редактору нужно заполнить значение в отдельной строке, это почти всегда кандидат на поле.
Сначала разделите сущности
В Drupal материал обычно хранится как node — сущность контента с заголовком, автором, статусом публикации и набором полей. Тип материала задаёт схему таких записей. Поля задают данные внутри одной записи.
Тип материала «Обзор» подходит, если у публикаций есть собственная форма, набор обязательных значений, шаблон вывода или отдельные правила отображения. Не стоит создавать отдельный тип для каждого производителя, жанра или тематической рубрики: это значения, а не разные виды контента.
Таксономия подходит для повторяющихся категорий, по которым нужно группировать и фильтровать записи: производитель, платформа, тип устройства. Термин таксономии[1] можно назначить множеству материалов, не дублируя одно и то же слово в каждом тексте.
Поле подходит для конкретного атрибута: цены, рейтинга, изображения, ссылки или короткого подзаголовка. Если значение должно участвовать в фильтре, сортировке или шаблоне, хранить его в поле надёжнее, чем в свободном тексте.
[1] Термин таксономии — отдельное значение из управляемого словаря Drupal, например «Apple» или «Android». В отличие от произвольного тега, его можно централизованно переименовать, описать и использовать в представлениях.
Проектируем тип «Обзор»
Перед настройкой выпишите, что именно вводит редактор и как эти данные будут использоваться. Для нашего примера получится такая схема.
| Элемент | Тип данных | Зачем нужен |
|---|---|---|
| Заголовок | Системное поле | Название обзора и заголовок страницы |
| Подзаголовок | Plain text, одна строка | Короткое резюме под заголовком |
| Основной текст | Long text with summary | Редакторский разбор с форматированием |
| Обложка | Image | Изображение в шапке и карточках |
| Производитель | Ссылка на термин таксономии | Фильтрация обзоров по бренду |
| Цена на момент публикации | Integer | Число без символа валюты для вывода и фильтра |
| Рейтинг | Integer | Число от 1 до 10 с проверкой диапазона |
| Плюсы и минусы | Long text, несколько значений | Списки сильных и слабых сторон |
| Ссылка на магазин | Link | Переход к странице товара |
Цену лучше хранить числом, без «руб.» и пробелов. Валюту и форматирование добавляет шаблон вывода. Рейтинг тоже должен быть числом: так его можно проверить и отсортировать, а не разбирать строку «9 из 10» на части.
Создаём тип материала в административной панели
Инструкция рассчитана на Drupal 10.x и 11.x с административной темой Claro и стандартными возможностями ядра. Названия пунктов могут немного отличаться, если сайт использует другую тему или перевод интерфейса.
- Создайте словарь производителей. Откройте Structure → Taxonomy → Add vocabulary, назовите его «Производители», затем добавьте термины, например Apple, Samsung и Xiaomi. Проверка: словарь виден в списке таксономий, а внутри него есть тестовые термины.
- Создайте тип материала. Перейдите в Structure → Content types → Add content type, задайте имя «Обзор» и машинное имя, которое Drupal предложит автоматически. Включите публикацию по умолчанию только если редакторы действительно должны сразу публиковать записи. Проверка: тип «Обзор» появился в списке, а в меню создания контента доступен пункт «Add content → Обзор».
- Добавьте подзаголовок. На вкладке Manage fields создайте поле типа Plain text. Ограничьте его одной строкой и задайте понятную метку «Подзаголовок». Проверка: при создании обзора под заголовком появляется отдельное поле без визуального редактора.
- Добавьте обложку. Создайте поле типа Image, установите одну картинку и задайте допустимые расширения, например JPG, PNG и WebP, если их поддерживает ваша конфигурация. Ограничение размера файла и максимальных размеров изображения задавайте исходя из хостинга и дизайна. Проверка: форма принимает изображение, а после сохранения оно отображается в поле материала.
- Свяжите обзор с производителем. Добавьте поле типа Entity reference, выберите сущность Taxonomy term и словарь «Производители». Оставьте одно значение, если у устройства должен быть один основной бренд. Проверка: в форме появляется выбор из существующих терминов, а не свободное текстовое поле.
- Добавьте цену и рейтинг. Для обоих полей выберите тип Integer. Сделайте цену обязательной, если каждый обзор обязан содержать её, а для рейтинга задайте минимальное и максимальное значение от 1 до 10. Проверка: Drupal не сохраняет материал с пустым обязательным полем или рейтингом за пределами заданного диапазона.
- Настройте плюсы и минусы. Создайте два поля типа Long text, разрешите несколько значений и назовите их «Плюсы» и «Минусы». Такой вариант удобнее для шаблона, чем один текстовый блок с маркерами, которые редактор может оформить по-разному. Проверка: в форме можно добавить вторую и последующие строки для каждого списка.
- Добавьте ссылку. Создайте поле типа Link и назовите его «Где купить». Если ссылка не обязательна, не делайте поле обязательным: цена и наличие товара могут измениться. Проверка: Drupal принимает полный адрес и показывает его в сохранённом материале.
- Настройте порядок полей. На вкладке Manage form display поставьте заголовок, подзаголовок и обложку первыми, затем основные характеристики, основной текст и ссылку. На вкладке Manage display скройте поля, которые не должны показываться посетителю, или задайте для них отдельные форматы вывода. Проверка: форма повторяет порядок работы редактора, а просмотр материала не показывает технические поля.
Что выбрать: новый тип, поле или таксономию
Граница между этими механизмами важнее конкретных кликов в админке. Ошибка здесь не ломает сайт сразу, но через несколько месяцев приводит к десяткам похожих полей и сложным миграциям.
| Задача | Правильный механизм | Почему |
|---|---|---|
| Новости и обзоры имеют разные обязательные данные | Новый тип материала | У каждого типа своя форма и схема полей |
| Нужно хранить цену или рейтинг конкретного обзора | Поле | Значение относится к одной записи и имеет собственный тип |
| Нужно пометить материал брендом или платформой | Таксономия | Один термин переиспользуется и участвует в группировке |
| Нужно вставлять повторяемые блоки с отдельной структурой | Компонентный модуль или Paragraphs | В ядре нет универсального конструктора произвольных редакционных блоков |
Последний вариант не стоит добавлять только потому, что он выглядит гибко. Paragraphs — сторонний модуль, который требует отдельной проверки совместимости и обновлений. Если обзор можно описать фиксированным набором полей, обычный тип материала проще тестировать и сопровождать.
Что ломается в такой схеме
Поле превратили в универсальный текстовый ящик
Поле «Характеристики» с таблицами и произвольным форматированием кажется быстрым решением. Но Drupal уже не знает, где модель устройства, где цена, а где объём памяти. Исправление — разделить значения на отдельные поля, пока данных немного.
Рейтинг хранится как текст
Строки «8/10», «8 из 10» и «восемь» нельзя надёжно сортировать и проверять. Для рейтинга используйте числовое поле, а обозначение шкалы добавляйте в подпись или шаблон.
Производителей копируют вручную
В результате появляются «Apple», «APPLE» и «Apple Inc.». Связь с таксономией убирает такие дубли, но требует заранее определить словарь и правила добавления новых терминов.
Меняют машинное имя после публикации
Машинные имена полей используются в конфигурации, шаблонах и интеграциях. Перед сохранением проверьте их написание. Переименование позже возможно, но потребует аккуратной проверки зависимостей и экспорта конфигурации.
Обязательные поля делают редакционный процесс хрупким
Если цена неизвестна до публикации, не делайте её обязательной «на всякий случай». Обязательность должна отражать бизнес-правило, а не желание получить идеально заполненную форму.
Когда выбирать какую структуру
Создавайте новый тип материала, если у контента другой жизненный цикл, набор обязательных полей, шаблон страницы или права доступа. Добавляйте поле, если данные относятся к одной записи и должны быть типизированы. Используйте таксономию, если одно значение повторяется в разных материалах и по нему нужен список, фильтр или навигация.
Представления, фильтры и индексация — следующий слой. На первом этапе достаточно добиться корректной структуры и заполнить несколько тестовых обзоров. Не пытайтесь сразу строить сложный каталог из полей, которые ещё никто не использует.
Что сделать дальше
Создайте три тестовых обзора: с максимальным рейтингом, без необязательной ссылки и с несколькими плюсами и минусами. Проверьте форму, страницу материала, список по производителю и отображение пустых значений. Затем экспортируйте конфигурацию сайта в вашей стандартной процедуре развёртывания и отдельно проверьте права редактора: он должен создавать термины и материалы только там, где это предусмотрено процессом.
После этого настройте представление «Все обзоры» с фильтрами по производителю и диапазону рейтинга. В продакшене следите не только за скоростью страницы, но и за качеством данных: дубликатами терминов, пустыми обязательными полями и материалами, созданными не тем типом.
Контент-конвейер: Из одной идеи — текст, изображение, озвучка и ролик. Один заказ вместо четырёх.
Спросить за 60 ₽Источники: Drupal User Guide: Creating content types, Drupal User Guide: Taxonomy
Частые вопросы
Можно ли использовать стандартный тип Article вместо нового типа «Обзор»?
Чем поле отличается от таксономии в Drupal?
Можно ли потом изменить тип материала или добавить поля?
Что будет, если редактор не успеет заполнить обязательное поле?
Нужен ли модуль Paragraphs для обзоров?
Почему производитель не должен быть обычным текстовым полем?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.