Skip to content
PageBuilder
PageBuilder
Визуальный конструктор секций для MODX 3: черновик и публикация без перезаписи content ресурса
  • MODX 3
  • PHP 8.2
  • Vue 3
  1. Компоненты
  2. PageBuilder
  3. Вывод на сайте
  4. Сниппеты
  5. PageBuilderTableRows

Сниппет PageBuilderTableRows ​

Возвращает строки табличных данных ресурса (вкладка Таблицы). Формат: JSON или Fenom-чанк.

Разметку пишите в шаблоне, виджете или чанке. Секция Pro data_table использует чанк pagebuilder_data_table из пакета.

Где вызывать ​

Шаблон, чанк или поле сниппета в другой секции. Таблица на текущем ресурсе или на resource_id.

Параметры ​

ПараметрПо умолчаниюОписание
resource_id0ID ресурса. 0 = текущий ресурс
table_keyпустоКлюч таблицы на ресурсе
table_id0ID таблицы в БД. Если больше нуля, имеет приоритет над table_key
limit20Максимум строк (1–100)
returnjsonjson или chunk
tplpagebuilder_table_rowsЧанк при return=chunk

Пустой ответ ([] или пустая строка) остаётся, только если ресурс не определился.

Если table_id больше нуля, сниппет не проверяет, что таблица принадлежит resource_id. Ресурс всё равно должен определиться.

Фильтрация и пагинация ​

Все ключи работают в сниппете. Процессор менеджера mgr/datatable/rows/list принимает только page, limit, search и filters. Контекстные и UTM-фильтры в него не передаются.

ПараметрПо умолчаниюОписание
page1Номер страницы
filtersпустоJSON фильтров по колонкам
context_columnпустоКолонка для фильтра по контексту
use_context1Подставить context_key текущего ресурса в context_column
context_keyпустоЯвный контекст вместо текущего
use_utm0Добавить фильтры из UTM-сессии
utm / utm_filtersпустоJSON UTM-фильтров для колонок

Пример filters:

json
{"price": {"op": "gte", "value": "100"}}

Операторы: eq, contains, in, gt, lt, gte, lte, between, empty, not_empty. Подробнее: Системные настройки → Табличные данные.

Событие pbOnBeforeTableGetList получает table, query и criteria по ссылке:

  • Выборка читает из query ключи search, filters, page и limit
  • Пары из criteria, кроме table_id, попадают в условие выборки
  • После плагина table_id записывается заново: сменить таблицу из плагина нельзя
  • Событие списка вызывается из сниппета и из mgr/datatable/rows/list

pbOnTableRowSave передаёт data по ссылке. Это значение записывается в строку.

JSON ​

Таблица не найдена → []. Иначе массив записей: id, table_id, position, data, editedon, editedby. Ячейки лежат в data.

При return=chunk в чанк попадает только data. Любое значение return, кроме json, отрисовывает чанк.

modx
[[!PageBuilderTableRows?
  &resource_id=`[[*id]]`
  &table_key=`offices`
  &limit=`50`
]]
fenom
{'!PageBuilderTableRows' | snippet : [
  'resource_id' => $_modx->resource.id,
  'table_key' => 'offices',
  'limit' => 50
]}

Чанк ​

В чанке Fenom-переменные rows (массив data строк) и table (метаданные таблицы).

modx
[[!PageBuilderTableRows?
  &resource_id=`[[*id]]`
  &table_key=`offices`
  &return=`chunk`
  &tpl=`my_table_rows`
]]
fenom
{'!PageBuilderTableRows' | snippet : [
  'resource_id' => $_modx->resource.id,
  'table_key' => 'offices',
  'return' => 'chunk',
  'tpl' => 'my_table_rows'
]}

См. также ​