
PageBuilder
Визуальный конструктор секций для MODX 3: черновик и публикация без перезаписи content ресурса
- MODX 3
- PHP 8.2
- Vue 3


Версия: Pro (advanced-fields).
В секции хранятся не сами строки, а настройки: ключ таблицы, лимит, фильтры, контекст и UTM. Строки на сайте отдаёт сниппет PageBuilderTableRows.
table_keyВ chunk: [[!PageBuilderTableRows? &table_key=...]]. Статические 5–10 строк: table.
{
"name": "table",
"type": "embeddedTable",
"label": "Таблица",
"tab": "Контент",
"width": 100,
"active": true
}Ключ table_key, лимит и фильтры задают в инспекторе, а не в JSON поля.
Объект { table_key, limit, filters, … }.
Ключ table в данных секции — конфиг выборки без строк таблицы:
{
"table": {
"table_key": "products",
"limit": 10,
"filters": {
"category": "phones"
},
"use_context": true,
"context_column": "context_key",
"use_utm": false,
"utm": {}
}
}Без &limit сниппет берёт 20 строк. Значение limit в данных секции по умолчанию — 10: передайте &limit, если нужен другой размер.
[[!PageBuilderTableRows? &table_key=`products`]]{'!PageBuilderTableRows' | snippet : [
'table_key' => 'products',
'limit' => 10,
]}Для полей с name, которые сохраняются в данных секции:
| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы в инспекторе | да |
width | 25, 33, 50, 66, 75, 100 | Ширина поля в % строки (flex); в CMP только эти значения | да |
description | string | Подсказка под подписью | да |
default | any | Начальное значение новой секции | да |
active | bool | false: скрыть поле в инспекторе | да |
required | bool | Обязательно при publish (черновик сохраняется) | да |
Подробнее: обзор полей.