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


Версия: Free. Нужен установленный пакет MIGX. Без него поле в CMP есть, но грид не монтируется: JSON в textarea и кнопка «Повторить».
Настоящий ExtJS-грид MIGX TV, не Vue-repeater.
repeaterconfigs (MIGX → Configs)Через MIGX Configs:
{
"name": "items",
"type": "migx",
"label": "Элементы",
"configs": "my_migx_config",
"tab": "Контент",
"width": 100,
"active": true
}Или 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_id и поля из formtabs, как значение MIGX TV.
Ключ items в данных секции:
{
"items": [
{ "MIGX_id": 1, "title": "Первый" },
{ "MIGX_id": 2, "title": "Второй" }
]
}[[+items.0.title]]{foreach $items as $item}
<div>{$item.title|pb_text}</div>
{/foreach}Для полей с name, которые сохраняются в данных секции:
| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы в инспекторе | да |
width | 25, 33, 50, 66, 75, 100 | Ширина поля в % строки (flex); в CMP только эти значения | да |
description | string | Подсказка под подписью | да |
default | array | Начальное значение новой секции | да |
active | bool | false: скрыть поле в инспекторе | да |
required | bool | Обязательно при publish (черновик сохраняется) | да |
configs | string | Имя конфигурации MIGX | да |
formtabs | string/array | Вкладки формы элемента | да |
columns | string/array | Колонки грида | да |
Подробнее: обзор полей.