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


Данные хранятся в панели управления или на вкладке Таблицы ресурса, а секция только выводит выбранную таблицу с лимитом строк.

table_keyВ поле Таблица укажите table_key из панели управления и Лимит строк. Сами данные редактируются не в инспекторе секции.
| Параметр | Значение |
|---|---|
| key | data_table |
| Слой | Pro |
| Категория | контент (content) |
| Chunk | pagebuilder_data_table |
| Требования | pro |
Заполните поля в инспекторе секции на ресурсе. Описание типов полей: справочник типов.
title) Тип text. Необязательное.
intro) Тип textarea. Необязательное.
table) Тип embeddedTable. Обязательное. Ссылка на таблицу из Панель управления PageBuilder: ключ таблицы и лимит строк.
Секция pb-data-table с HTML-таблицей.
Пример JSON после сохранения секции. Для media, video и map значения на выводе могут быть обогащены:
{
"title": "Заголовок секции",
"intro": "Краткое вступление перед основным содержимым.",
"table": {
"table_key": "prices",
"limit": 10
}
}Fenom chunk pagebuilder_data_table:
<section class="pb-section pb-section--data-table pb-data-table{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="data_table"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner pb-data-table__inner">
{if $title}
<h2 class="pb-heading pb-data-table__title">{$title|pb_text}</h2>
{/if}
{if $intro}
<p class="pb-data-table__intro">{$intro|escape}</p>
{/if}
{if $table.table_key}
{set $resourceId = $resource_id|default:($modx->resource ? $modx->resource->get('id') : 0)}
{set $tableListing = $modx->runSnippet('PageBuilderTableRows', [
'resource_id' => $resourceId,
'table_key' => $table.table_key,
'limit' => $table.limit|default:20,
'return' => 'html'
])}
<div class="pb-data-table__embed">
{$tableListing}
</div>
{/if}
</div>
</section>