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

Версия: Pro.
Колонки text, number, image, color, date, tag, currency, url. Все строки хранятся в data секции, редактор правит grid в инспекторе.
columns задаёт name, label, type для каждой колонки. Большие выборки из БД: embeddedTable.
{
"name": "specs",
"type": "table",
"label": "Характеристики",
"columns": [
{
"name": "key",
"label": "Ключ",
"type": "text"
},
{
"name": "value",
"label": "Значение",
"type": "text"
}
],
"tab": "Контент",
"width": 100,
"active": true
}Массив строк-объектов по columns[].name.
Ключ specs в данных секции: массив строк по columns[].name:
{
"specs": [
{
"key": "Вес",
"value": "1.2 кг"
},
{
"key": "Цвет",
"value": "#111827"
},
{
"key": "Фото",
"value": {
"url": "assets/images/hero.jpg",
"id": 12,
"path": "assets/images/",
"filename": "hero.jpg",
"extension": "jpg",
"name": "hero",
"title": "hero.jpg",
"width": 1920,
"height": 1080,
"size": 245760,
"type": "image"
}
}
]
}type: image хранят media-объект, как у поля image.{foreach $specs as $row}
<div class="spec">
<span class="spec__key">{$row.key|escape}</span>
<span class="spec__value">{$row.value|escape}</span>
</div>
{/foreach}Колонки в панели управления: columnsText (name|Подпись|type). Типы ячеек: text, number, image, color, date, tag, currency, url.
Для полей с name, которые сохраняются в данных секции:
| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы в инспекторе | да |
width | 25–100 | Ширина поля в % строки (flex) | да |
description | string | Подсказка под подписью | да |
default | any | Начальное значение новой секции | да |
active | bool | false: скрыть поле в инспекторе | да |
required | bool | Обязательно при publish (черновик сохраняется) | да |
columns[] с name, label, type (text, number, image, color, …).Подробнее: обзор полей.