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

Версия: Free. Нужен установленный пакет MIGX. Без него поле в CMP есть, но грид не монтируется (fallback: textarea с JSON).
formtabs / columns как у TVrepeaterconfigs (MIGX → Configs)Через MIGX Configs:
{
"name": "items",
"type": "migx",
"label": "Элементы",
"configs": "my_migx_config",
"tab": "Контент",
"width": 100,
"active": true
}Или inline formtabs / columns (как input properties TV):
{
"name": "items",
"type": "migx",
"label": "Элементы",
"formtabs": "[{\"caption\":\"Item\",\"fields\":[{\"field\":\"title\",\"caption\":\"Title\"}]}]",
"columns": "[{\"header\":\"Title\",\"dataIndex\":\"title\",\"width\":160}]"
}Ключ migxConfig / migx_config это алиас для configs.
JSON-массив объектов (как значение MIGX TV):
{
"items": [
{ "MIGX_id": 1, "title": "Первый" },
{ "MIGX_id": 2, "title": "Второй" }
]
}Ключ поля (например items) хранит массив строк MIGX с MIGX_id и полями из formtabs.
{foreach $items as $item}
<div>{$item.title|escape}</div>
{/foreach}| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы | да |
width | 25–100 | Ширина поля % | да |
description | string | Подсказка | да |
default | array | Начальное значение | да |
active | bool | Скрыть в инспекторе | да |
required | bool | Обязательно при publish | да |
configs | string | Имя MIGX config | да |
formtabs | string/array | Tabs формы элемента | да |
columns | string/array | Колонки грида | да |