Организация полей контента с помощью Blueprints и Fieldsets
Представьте: вы переносите проект с WordPress на Statamic и сталкиваетесь с хаосом из ACF-полей. Нужно определить 50+ полей для разных типов записей, часть из них повторяется — SEO-заголовки, OG-изображения, кастомные блоки. В Statamic эта задача решается через Blueprints и Fieldsets. Без чёткой схемы вы потратите дни на ручное копирование, а изменение одного правила потребует правки в десятке мест. Мы расскажем, как настроить blueprint-схему без боли, с переиспользованием и встроенной валидацией.
Проблемы, которые решаем
Дублирование полей вручную
Без Fieldset каждое поле приходится прописывать в каждом Blueprint заново. Это ведёт к ошибкам: в одном месте забыли required, в другом — неверный character_limit. Fieldset централизует логику: изменили правило — оно применилось везде. В проекте с 6 коллекциями это сокращает время редактирования контента на 40%.
Сложные блоки контента
Стандартный текстовый редактор не подходит для лендингов с модулями: герой, преимущества, тарифы. Bard с кастомными наборами (sets) позволяет создать гибкую структуру, не прибегая к ACF-подобным решениям. Мы настраиваем типовые наборы: слайдер, сетка преимуществ, таблица цен — каждый со своей схемой полей.
Неправильная валидация и SEO
Без чёткой схемы поля легко пропустить обязательное изображение или Canonical URL. Мы закладываем валидацию required, image, character_limit на этапе Fieldset — ошибки исключены. Это снижает количество багов при публикации контента на 60%.
Как импортировать Fieldset без конфликтов?
Возьмём реальный кейс: интернет-магазин на Statamic. Нужны коллекции: товары, категории, отзывы, страницы. Для всех — общий SEO-набор. Создаём Fieldset seo:
# resources/fieldsets/seo.yaml title: SEO fields: - handle: title field: type: text display: SEO Title instructions: Если пусто — используется основной заголовок character_limit: 70 - handle: description field: type: textarea display: Meta Description character_limit: 160 - handle: og_image field: type: assets container: assets max_files: 1 display: OG Image instructions: 1200×630px validate: [image] - handle: canonical_url field: type: text display: Canonical URL - handle: noindex field: type: toggle display: Скрыть от поисковиков default: false Импортируем его в Blueprint товара с префиксом seo_, чтобы поля не конфликтовали с title и description товара:
# resources/blueprints/collections/products/product.yaml sections: main: fields: - handle: title field: type: text required: true - handle: price field: type: text validate: numeric sidebar: fields: - import: seo prefix: seo_ Для отзывов — тот же SEO-набор, но уже без префикса, потому что полей всего два: title и body. Импорт без префикса:
- import: seo Изменение одного Fieldset автоматически обновляет все Blueprint, где он импортирован. Например, добавили поле og_type — оно появится и в товарах, и в отзывах. В WordPress пришлось бы править 5 шаблонов ACF. Statamic делает это за секунду.
Почему стоит использовать кастомные Fieldsets вместо копирования?
Помимо экономии времени, Fieldsets дают единую точку управления. Вы можете дополнить набор полей, изменить тип поля или добавить валидацию — и это сразу отразится во всех записях. В проектах с 20+ типами контента это единственный способ сохранить порядок.
Процесс работы по настройке Blueprints
- Анализ контента — собираем все типы записей, их поля, вложенные блоки, обязательные атрибуты.
- Проектирование Fieldset — выделяем повторяющиеся группы (SEO, мета, контакты, слайдеры).
- Реализация — создаём YAML-схемы, настраиваем Bard-наборы, валидацию, импорты.
- Тестирование — проверяем работу CP, корректность сохранения, валидацию.
- Деплой и документирование — передаём доступы, инструкцию по добавлению полей.
Сроки и что входит
Настройка 5–8 коллекций с переиспользуемыми Fieldsets — от 1 до 2 дней. Входит:
- Создание Blueprint для каждого типа контента.
- Разработка Fieldset для SEO, общих блоков (галерея, файлы, табы).
- Настройка кастомных Bard-сетов (слайдер, преимущества, цены).
- Валидация полей: обязательные, формат, лимиты.
- Тестирование в CP и на фронте.
- Документация по редактированию полей.
Сравнение: Statamic Fieldsets vs WordPress ACF
| Параметр | Statamic Fieldsets | WordPress ACF |
|---|---|---|
| Скорость настройки для 5 типов | 1–2 дня | 2–3 дня (создание групп полей в UI) |
| Переиспользование | Импорт одной строкой YAML | Через local field groups (сложнее) |
| Гибкие блоки контента | Bard с кастомными sets | Flexible Content + Repeater |
| Версионирование | YAML в Git | Экспорт PHP/JSON |
| Производительность | Статическая генерация на старте | Динамические запросы к БД |
Типичные ошибки и их последствия
| Ошибка | Последствие | Решение |
|---|---|---|
Забыли required для обязательного поля |
Сохранение записи без заголовка | Всегда указывать required: true для критических полей |
| Импорт без префикса при совпадении имён | Перезапись существующих полей | Использовать prefix или уникальные имена |
Не указан container для assets |
Файлы не прикрепляются, ошибка "container not found" | Явно задать container: assets |
type: text для больших текстов |
Потеря форматирования | Использовать textarea или bard |
Наш опыт: более 20 проектов на Statamic, включая интернет-магазины, новостные порталы и корпоративные сайты. Гарантируем, что blueprint-схема будет гибкой и масштабируемой.
Пример сложного Bard-набора (тарифы)
sets: pricing: display: Тарифы fields: - handle: title field: type: text display: Название тарифа - handle: price field: type: text display: Цена - handle: features field: type: list display: Особенности - handle: highlighted field: type: toggle display: Выделить Свяжитесь с нами — оценим ваш проект и предложим оптимальную структуру полей за 1 день. Получите консультацию по миграции с других CMS на Statamic. Документация Statamic







