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

Динамический список

Результат: на странице список записей на момент открытия, не копия в JSON секции. Нужны PageBuilder Pro и capability datasources (живой запрос к провайдеру).

Что нужно заранее

  1. Ресурс опубликован, в шаблоне стоит [[!PageBuilder]].
  2. Capability datasources включена. Без неё текст Datasources are not available.
  3. Для провайдера modx-resources есть опубликованные дочерние ресурсы. Для таблицы заранее создан table_key. Для miniShop3 пакет установлен.

Шаги

  1. Добавьте секцию dynamic_list.
  2. В поле datasource выберите провайдера: modx-resources, pagebuilder-tables или minishop3.
  3. Для таблицы укажите ключ. Задайте фильтры, сортировку и limit. Лимит больше 100 QueryPolicy не пропустит.
  4. Операторы: eq, contains, in, gte, lte, between, empty, not_empty. contains не различает регистр, в том числе кириллицу. Ключи sql, php, snippet и class отклоняются.
  5. Превью в менеджере идёт через mgr/datasource/query.
  6. Сохранить ресурса публикует секцию. В чанк попадают items и total.

Пустой провайдер: Datasource is not configured. Пустой результат: лексикон pagebuilder_fe_list_empty. Если у записи есть image, карточка его показывает. Секция в контексте страницы, HTML-кеш её не замораживает. Без Pro опубликованный HTML заново не строится.

Пример полей

Провайдер modx-resources. Фильтр как на странице секции: поле parent, оператор eq, значение 5 (id родителя, пример). Sort: поле publishedon, direction desc. Limit запроса 20. Отдельное поле секции Лимит можно поставить 8.

Тот же набор ключей лежит в данных секции. Менять published-ресурсы родителя 5 достаточно, чтобы список на сайте обновился. JSON секции при этом не переписывают.

Что проверить

Превью в менеджере возвращает строки через mgr/datasource/query. На сайте карточки дочерних ресурсов родителя из фильтра. Запрос без строк показывает pagebuilder_fe_list_empty.

Откат

Удалите секцию.

См. также