Налаштування чанків (Chunks) та шаблонів MODX
Чанки — повторювані HTML-блоки без PHP-логіки. Шаблони — HTML-обгортки сторінок із плейсхолдерами. Грамотна організація чанків та шаблонів — основа підтримуваного проекту MODX.
Організація чанків
Назвіть чанки з префіксами для розділення за типом:
Шапка та підвал:
header - основна шапка
header.mobile - мобільна версія шапки
footer
footer.minimal - мінімальний підвал для лендингів
Карточки та блоки:
card.product - карточка товара
card.article - карточка статті
card.team - карточка співробітника
block.cta - призив до дії
block.features - блок переваг
block.testimonials - відгуки
Форми:
form.contact - форма зворотного зв'язку
form.callback - форма зворотного дзвінка
Email-шаблони:
email.contact - лист після заявки
email.order - підтвердження замовлення
Чанк карточки товара
[[- card.product ]]
<article class="product-card">
[[+image:notempty=`
<figure class="product-card__image">
<a href="[[+link]]">
<img src="[[+image]]" alt="[[+pagetitle]]" loading="lazy" width="400" height="300">
</a>
</figure>
`]]
<div class="product-card__body">
<h3 class="product-card__title">
<a href="[[+link]]">[[+pagetitle]]</a>
</h3>
[[+introtext:notempty=`<p class="product-card__desc">[[+introtext]]</p>`]]
[[+price:notempty=`
<p class="product-card__price">
[[+price:number_format=`0,.`, ` `]] ₽
</p>
`]]
<a href="[[+link]]" class="btn btn--primary">Детальніше</a>
</div>
</article>
Шаблони: один або декілька?
Рекомендований підхід — кілька спеціалізованих шаблонів:
| Шаблон | Використання |
|---|---|
| base | Базовий (не використовується безпосередньо) |
| home | Головна сторінка |
| inner | Типова внутрішня сторінка |
| catalog | Список категорій/товарів |
| detail | Детальна сторінка товара/статті |
| landing | Лендинг без шапки/підвала |
| blog | Блог зі списком статей |
| error | Сторінки помилок (404, 503) |
Передача даних із шаблону в чанк
[[- У шаблоні ]]
[[$block.features?
&title=`Чому вибирають нас`
&items=`[[*tv.features_json]]`
&columns=`3`
]]
[[- Чанк block.features ]]
<section class="features features--[[+columns]]col">
<h2>[[+title]]</h2>
<div class="features__grid">
[[+items]]
</div>
</section>
Умови в чанках
[[- Показати мітку "Новинка" якщо ресурс створений менше 30 днів тому ]]
[[+createdon:gt=`[[*id:math=`[[!+current_timestamp]] - 2592000`]]`:then=`<span class="badge badge--new">Новинка</span>`]]
[[- Або через TV ]]
[[+tv.is_new:is=`1`:then=`<span class="badge">Новинка</span>`]]
Зберігання у файлах
assets/
├── chunks/
│ ├── header.html
│ ├── footer.html
│ └── card.product.html
└── templates/
├── home.html
└── inner.html
У редакторі чанка: Source Type = File, Filename = assets/chunks/header.html.
Терміни
Створення та організація 15–25 чанків для типового сайту — 3–5 днів (у межах розробки шаблону).







