Настройка Tailor CMS для гибкого контента October CMS
Tailor — встроенная система управления контентом в October CMS 3, пришедшая на смену связке плагин/модель для типичных задач. Описание структуры контента через YAML-blueprints, без написания PHP-кода для простых сценариев.
Типы blueprints
Entry — коллекция записей (блог, товары, события). Аналог Channel в Craft CMS. Single — одиночная запись (homepage settings, about page). Global — глобальные переменные, доступные во всех шаблонах. Mixin — переиспользуемый набор полей для включения в другие blueprints.
Структура проекта
blueprints/
├── blog/
│ ├── post.yaml # Entry: посты блога
│ └── category.yaml # Entry: категории
├── site/
│ ├── settings.yaml # Global: настройки сайта
│ └── homepage.yaml # Single: главная страница
└── mixins/
└── seo.yaml # Mixin: SEO-поля
Entry Blueprint
# blueprints/blog/post.yaml
uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
handle: Blog\Post
type: entry
name: Blog Post
drafts: true
revisions: true
navigation:
label: Blog Posts
icon: icon-pencil
fields:
title:
label: Заголовок
type: text
required: true
translatable: true
slug:
label: Slug
type: text
required: true
preset:
field: title
type: slug
excerpt:
label: Краткое описание
type: textarea
translatable: true
content:
label: Содержание
type: richeditor
toolbarButtons: bold|italic|insertLink|insertImage|insertVideo|formatOL|formatUL|insertHR|fullscreen
translatable: true
featured_image:
label: Главное изображение
type: fileupload
mode: image
imageWidth: 1200
imageHeight: 630
category:
label: Категория
type: entries
source: Blog\Category
displayMode: list
maxItems: 1
tags:
label: Теги
type: taglist
published_at:
label: Дата публикации
type: datepicker
mode: datetime
is_featured:
label: Отображать в слайдере
type: switch
default: false
mixin[seo]:
source: Mixins\Seo
Global Blueprint
# blueprints/site/settings.yaml
uuid: b2c3d4e5-f6a7-8901-bcde-f12345678901
handle: Site\Settings
type: global
name: Site Settings
fields:
site_name:
label: Название сайта
type: text
phone:
label: Телефон
type: text
email:
label: Email
type: text
social_links:
label: Соцсети
type: repeater
displayMode: builder
fields:
platform:
label: Платформа
type: dropdown
options:
vk: ВКонтакте
telegram: Telegram
youtube: YouTube
instagram: Instagram
url:
label: URL
type: text
Использование в шаблонах
{# Entry — список постов #}
{% set posts = tailor.collection('Blog\Post')
.where('published', true)
.orderBy('published_at', 'desc')
.limit(12)
.get() %}
{% for post in posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
{% if post.featured_image %}
<img src="{{ post.featured_image.getThumb(800, 400, { mode: 'crop' }) }}" alt="{{ post.title }}">
{% endif %}
<p>{{ post.excerpt }}</p>
</article>
{% endfor %}
{# Global — настройки сайта #}
{% set settings = tailor.global('Site\Settings') %}
<a href="tel:{{ settings.phone }}">{{ settings.phone }}</a>
{% for link in settings.social_links %}
<a href="{{ link.url }}" class="social-{{ link.platform }}">{{ link.platform }}</a>
{% endfor %}
{# Single — главная страница #}
{% set homepage = tailor.single('Site\Homepage') %}
<h1>{{ homepage.hero_title }}</h1>
Mixin — переиспользуемые поля
# blueprints/mixins/seo.yaml
uuid: c3d4e5f6-a7b8-9012-cdef-123456789012
handle: Mixins\Seo
type: mixin
name: SEO Fields
fields:
seo_title:
label: SEO Title
type: text
seo_description:
label: SEO Description
type: textarea
og_image:
label: OG Image
type: fileupload
mode: image
imageWidth: 1200
imageHeight: 630
Настройка 5–8 Tailor blueprints для типового сайта — 1–3 дня.







