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


Версия: 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.
[[+items.0.title]]{foreach $items as $item}
<div>{$item.title|pb_text}</div>
{/foreach}| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы | да |
width | 25, 33, 50, 66, 75, 100 | Ширина поля в % строки (flex); в CMP только эти значения | да |
description | string | Подсказка | да |
default | array | Начальное значение | да |
active | bool | Скрыть в инспекторе | да |
required | bool | Обязательно при publish | да |
configs | string | Имя MIGX config | да |
formtabs | string/array | Tabs формы элемента | да |
columns | string/array | Колонки грида | да |