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

Витрина: секции, список и miniShop3

Результат: на одной странице первый экран, ряд подкатегорий, сетка товаров, список записей, два вопроса и форма. Черновик на сайт не попадает. Публикует кнопка Сохранить ресурса. На вкладке Секции отдельной кнопки публикации нет.

Страница без магазина собирается из Free-секций: Лендинг.

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

  1. Ресурс опубликован в MODX. Снятый с публикации ресурс страницу не откроет.
  2. В шаблоне стоит некэшированный [[!PageBuilder]].
  3. Установлены PageBuilder Pro, miniShop3 и FetchIt.
  4. Секции витрины требуют miniShop3 (requires: ["pro", "minishop3"]). Для списка нужна capability datasources.

Шаги

  1. Откройте ресурс и вкладку Секции.
  2. Добавить секцию и возьмите из каталога, сверху вниз: hero, categories_row, products_grid, dynamic_list, faq, contact_form.
  3. Заполните поля в Свойствах. Id родителей в примере условные. Подставьте id своих ресурсов.
  4. Нажмите Сохранить у ресурса. Редактор валидирует поля и пишет published_json.
  5. Откройте страницу на сайте.

Пример полей

Hero. Title Каталог. Button label Смотреть категории, Button URL на страницу категории. Alignment left. Кнопка выводится, только если заполнены и текст, и URL.

categories_row. Родительская категория 101 (пример). Внутри должны быть ресурсы класса msCategory. Лимит 6. Пустой лимит в чанке становится 8. Нет подразделов: лексикон pagebuilder_fe_listing_empty_category («В этой категории нет подразделов.»).

products_grid. Корень каталога 101 (пример). Поле обязательное. Лимит 6. Пустой лимит в чанке становится 12. Сортировка price_asc или popular. Неизвестное значение сортирует как menuindex. Пустая категория: pagebuilder_fe_listing_empty_products («В этой категории пока нет товаров.»). У секции "cacheable": false.

dynamic_list. Провайдер modx-resources. Фильтр parent, оператор eq, значение 5 (id родителя, пример). Sort по publishedon, direction desc. Лимит запроса не больше 100. В чанк попадают items и total. Пустой результат: pagebuilder_fe_list_empty.

FAQ. Title Доставка. Две строки repeater: question и answer.

contact_form. Ключ формы shop_question. В Полях формы две строки: email типа email и phone типа phone. Имя поля: [a-z][a-z0-9_]*.

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

Подкатегории: дочерние msCategory выбранного родителя. Карточки товаров показывают фото, цену и кнопку «В корзину». Новый опубликованный дочерний ресурс появляется в списке без правки JSON секции. Форма уходит через FetchIt. Без FetchIt секция показывает pagebuilder_fe_form_unavailable.

Откат

Удалите секцию в корзину страницы. Черновик при этом остаётся.

См. также