Настройка чанков (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 дней (в рамках разработки шаблона).







