Налаштування Tailor CMS для гнучкого контенту October CMS
Tailor — вбудована система управління контентом у October CMS 3, що замінила зв'язку плагін/модель для типових задач. Опис структури контенту через YAML-blueprints без написання PHP-кода для простих сценаріїв.
Типи blueprints
Entry — колекція записів (блог, товари, события). Аналог Channel в Craft CMS. Single — одинична запис (параметри homepage, сторінка about). 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 дні.







