PageBuilderPro

Конструктор секций для MODX 3 с библиотекой и commerce
Автор дополнения
Иван Бочкарев
Пакетов
44
Закачек
338
Обычно отвечает в течение суток
Автор дополнения
Пакетов
44
Закачек
338
Обычно отвечает в течение суток
Версия 1.0.18-beta
Дата выпуска 12.11.2026
Загрузки 14
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
PageBuilder Pro — расширение визуального конструктора секций для MODX 3
PageBuilder Pro расширяет PageBuilder Free дополнительными секциями, типами полей и инструментами для повторного использования контента, шаблонов, данных и интеграции с внешними приложениями.

При установке PageBuilder Pro автоматически устанавливает PageBuilder Free как зависимость.

Что добавляет Pro
  • дополнительные секции для контента, конверсии, медиа и интернет-магазинов
  • 27 дополнительных типов полей
  • Общие блоки и Master-секции
  • журнал событий секций и восстановление состояния
  • шаблоны страниц
  • адаптивные значения для Desktop / Tablet / Mobile
  • условия отображения секций
  • вкладка «Примеры» с готовыми пресетами
  • копирование секций между контекстами
  • глобальная корзина
  • расширенные UTM-правила
  • Dynamic List и Filterable Grid
  • Forms и Form Builder
  • Agent API
  • REST API v1
  • Constructor Bundle для экспорта и импорта UI-типов

Секции PageBuilder Pro
Pro добавляет секции для контента, конверсии, медиа, работы с данными и MiniShop3.

Контент и универсальные секции
  • Преимущества
  • Команда
  • Вкладки
  • Аккордеон
  • Как это работает
  • Структурированный контент
  • Кейс
  • Таблица данных
  • Таблица характеристик
  • Хронология
  • Цитата
  • Уведомление

Медиа и дополнительные блоки
  • Видео
  • Карта
  • Контакты с картой
  • Карусель галереи
  • Медиа и текст
  • До и после
  • Портфолио
  • Загрузки
  • Адреса
  • Логотипы партнёров
  • Записи блога

Конверсия и формы
  • Тарифы
  • Форма обратной связи
  • Конструктор формы
  • Квиз
  • Рассылка

Данные и динамический вывод
  • Динамический список
  • Сетка с фильтром

MiniShop3
Commerce-секции работают при установленном MiniShop3.

  • Сетка товаров
  • Карусель товаров
  • Товар в фокусе
  • Подборка товаров
  • Похожие товары
  • Промо-баннер
  • Ряд категорий
  • Ряд брендов
  • Сравнение товаров

Commerce-секции используют требования pro и minishop3 и не появляются как доступные для использования без установленного MiniShop3.

Примеры и готовые структуры
В каталоге секций Pro доступна вкладка «Примеры». Она содержит готовые пресеты, которые можно использовать при создании страницы.

Дополнительно доступны шаблоны страниц. Шаблон содержит упорядоченный набор типов секций без контента. Его можно создать в CMP, сохранить из текущего ресурса и применить к черновику другого ресурса.

Шаблоны используют только тип секции и её версию — содержимое страницы в шаблон не попадает.

Общие блоки и Master-секции
Секцию можно сохранить как общий блок и использовать на других ресурсах.

Доступны режимы:

  • связать секцию с Master
  • вставить независимую копию
  • подтянуть секцию с другой страницы
  • изменить список локальных полей связанной секции

При выводе данные Master объединяются с локальными данными связанной секции. Для полей, указанных в libraryLocalFields, можно использовать локальные значения.

При сохранении или публикации страницы синхронизируемые поля могут записываться обратно в Master.

Журнал событий секций
Для секций Pro доступен журнал событий.

Фиксируются действия:

  • создание
  • изменение
  • копирование
  • удаление
  • включение
  • отключение

Из контекстного меню секции доступны View и Restore.

В текущей версии это именно журнал событий отдельных секций, а не система снимков всей страницы.

Адаптивные значения
Для поддерживаемых полей можно задавать разные значения для:

  • Desktop
  • Tablet
  • Mobile

Responsive поддерживается для:
  • text
  • textarea
  • url
  • number
  • currency
  • richtext
  • slug

Условия отображения
Для секций можно задать settings.conditions.

Evaluator поддерживает условия, связанные с:
  • авторизованным пользователем
  • гостем
  • контекстом MODX
  • GET-параметрами
  • зарегистрированными условиями

27 дополнительных типов полей
PageBuilder Free предоставляет 35 типов полей. Pro добавляет ещё 27.

  • address
  • combo
  • currency
  • datasource
  • daterange
  • dependent
  • documents
  • editorjs
  • embeddedTable
  • fieldset
  • form
  • gallery
  • icon
  • imask
  • jsongrid
  • keyvalue
  • link
  • map
  • multicombo
  • multirelation
  • product
  • products
  • relation
  • schedule
  • table
  • tablecombo
  • tablemulticombo

Таблицы
PageBuilder поддерживает два сценария работы с таблицами.

Отдельные таблицы ресурса доступны во вкладке «Таблицы». Они предназначены для больших наборов строк и поддерживают фильтрацию, импорт CSV/JSON и массовые операции.

Pro-секция data_table предназначена для небольшой таблицы, которая хранится непосредственно в JSON конкретной секции.

Поле table позволяет редактировать табличные данные непосредственно в Inspector. Поля колонок и их типы определяются схемой секции.

Dynamic List и Filterable Grid
Pro содержит секции для динамической работы с данными.

Dynamic List и Filterable Grid используют datasources.

Доступны провайдеры:
  • modx-resources
  • pagebuilder-tables
  • minishop3
  • пользовательские datasource через mgr/datasource/*

Формы
Pro добавляет CMP Forms, Form Builder и интеграцию с FetchIt.

Для форм предусмотрены:

  • CSRF-защита
  • honeypot
  • обработка через FetchIt
  • отправка email после commit
  • webhook после commit

Отправленные данные форм не сохраняются в базе данных PageBuilder.

Секции quiz и contact_form требуют FetchIt на фронтенде.

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

[[!PageBuilder]]


или:

{'!PageBuilder' | snippet}


Pro-секции выводятся тем же механизмом, что и секции Free. Для Pro-секций используются собственные Fenom Chunks с префиксом pagebuilderpro_.

Вывод секций другого ресурса
Опубликованные секции другого ресурса можно вывести через PageBuilderResource.

JSON и Headless
Free Public API остаётся доступен и в Pro. Он предназначен для read-only получения опубликованного контента в JSON.

Public API может возвращать:

  • опубликованные значения секций
  • HTML секций
  • JSON документа
  • каталог типов секций

Pro-секции также доступны через Public API, если они опубликованы на странице.

Agent API
Agent API предназначен для скриптов, агентов и собственных конструкторов.

Доступны операции:

  • snapshot — получить revision, черновик, типы секций и схемы полей
  • apply — добавить, заменить или обновить секции

Поддерживаются режимы:
  • append
  • prepend
  • replace
  • upsert

Можно передать publish=1, чтобы после применения сразу опубликовать страницу.

Agent API работает через assets/components/pagebuilder/connector.php, использует менеджерскую сессию MODX и проверяет права пользователя.

REST API v1
Pro предоставляет отдельный read-only REST API для опубликованного контента.

Доступны:
  • GET /pages — список страниц
  • GET /pages/{id-or-alias} — отдельная страница
  • GET /catalog/sections — каталог секций

Авторизация выполняется через Authorization: Bearer.

Дополнительно поддерживаются:
  • scopes
  • отзыв токенов
  • ETag / 304
  • throttle по токену

REST API v1 предназначен для выдачи опубликованного контента. Для работы с черновиками и записи используется Agent API.

UTM
Pro добавляет новые UTM-правила и реестр UTM. Уже опубликованные UTM-правила продолжают исполняться механизмами Free.

Копирование между контекстами
Секции можно копировать между контекстами MODX с помощью Pro-функции i18n-copy.

Глобальная корзина
В панели управления доступна глобальная корзина для восстановления удалённых секций и строк таблиц между ресурсами.

Constructor Bundle
Bundle позволяет экспортировать и импортировать UI-типы секций.

Доступны:
  • export
  • dry-run
  • проверка create
  • проверка update
  • проверка conflict
  • import одной транзакцией

Bundle предназначен для переноса определений UI-типов. Секреты, API-токены, содержимое страниц и строки таблиц в Bundle не входят.

Для разработчиков
Pro расширяет API и механизм регистрации секций.

Новые типы секций регистрируются через pbOnRegisterSectionDefinitions.

Для собственных расширений доступны:

  • JSON-определения секций
  • Fenom Chunks
  • пользовательские поля
  • datasources
  • события pbOn*
  • Agent API
  • Public API
  • REST API v1
  • Constructor Bundle

Требования

  • MODX Revolution 3.0.3+
  • PHP 8.2+
  • VueTools
  • pdoTools
  • MySQL / MariaDB
  • xPDO 3

Зависимости
PageBuilder Pro требует PageBuilder Free.

Для commerce-секций требуется MiniShop3.

Для секций quiz и contact_form на фронтенде требуется FetchIt.

Документация

Changelog: PageBuilder Pro

Transport signature: pagebuilderpro-{version}-{release} Источник версии: PageBuilderPro/_build/config.inc.php Требует: pagebuilder >=1.0.18 (подробности в changelog Free)

[1.0.18-beta] - 2026-10-25

Changed

  • Нужен pagebuilder >=1.0.18.

Fixed

  • Поля product и products появляются в диалоге типа секции, если установлен miniShop3. Провайдер выдаёт capability minishop3.

[1.0.17-beta] - 2026-09-29

Changed

  • Нужен pagebuilder >=1.0.17.

Fixed

  • promo_banner: фон берёт сохранённый кадр через pb_image_src, как hero во Free.

[1.0.16-beta] - 2026-09-25

Changed

  • Нужен pagebuilder >=1.0.16.
  • Секция spec_table: chunk pagebuilderpro_spec_table читает spec_rows (TableCells::present). Группа (_pbGroup) — отдельная строка на всю ширину. Ячейки берут colspan/rowspan из _pb_cells и пропускают hidden. Стили group / span-cont / zebra в pagebuilder-sections-pro.css.
  • Демо-стенд spec_table: расширенный набор строк для проверки групп, span и escape.

[1.0.15-beta] - 2026-09-21

Added

  • Capability image-crop и маршрут mgr/media/crop (процессор в core). В инспекторе кадрируются image и gallery. В схеме типа есть поле crops.

Changed

  • Нужен pagebuilder >=1.0.15.

[1.0.14-beta] - 2026-09-20

Changed

  • Нужен pagebuilder >=1.0.14. В этом выпуске правок Pro нет.

[1.0.13-beta] - 2026-09-20

Fixed

  • filterable_grid: подписи фильтров берутся из схемы таблицы. Колонка image не попадает в фильтр и сортировку. Номер страницы не уходит дальше последней.
  • Плашка notice по ширине текста, а не на всю секцию.
  • Карточки dynamic_list стоят в ряд: сетка auto-fit с минимумом 16rem.
  • Обновление Pro не затирает static-файлы сниппетов: resolver и _build/build.php включают xPDO::OPT_SETUP и восстанавливают содержимое с диска.
  • contact_form: обязательный checkbox считается пустым без 1/yes/true/on. Options для select/radio собираются из строк textarea.
  • blog_posts: пустой parent показывает empty state. Intro и картинка только при show_intro / show_image. Intro берётся из introtext, не из includeContent.

Changed

  • Нужен pagebuilder >=1.0.13.
  • Capability collections: вкладка CMP и маршруты mgr/collection/*.
  • Если у записи dynamic_list или filterable_grid есть image, карточка его показывает.
  • filterable_grid: Ajax через pagebuilder-filterable-grid.js (форма, фильтры, пагинация). URL через history.pushState. Без JS остаётся GET. Кнопка «Сбросить». Операторы: text → contains, number/currency → gte, color → eq.
  • FetchItSupport::service принимает config. Пустая форма и недоступный FetchIt отдают лексиконные сообщения.
  • contact_form: типы select, radio, checkbox, date. Поле options (по строке).
  • form_builder: поле intro в секции.
  • У карусели галереи и товаров есть кнопка паузы autoplay.
  • Кнопка «В корзину» получает aria-label с названием товара.
  • Пресет quiz-kitchen: старт «Начать подбор», шаг «Дальше».
  • Стили Pro-секций в pagebuilder-sections-pro.css (сетка фильтров, формы, blog empty).

[1.0.12-beta] - 2026-09-18

Fixed

  • FetchIt на MODX 3 и pdoTools: сниппет PageBuilderFetchIt рендерит формы через Fenom. Иначе class_exists('pdoTools') ложен, и поля уходят сырым шаблоном.
  • В downloads media-record file отдаёт url.
  • Пагинация filterable_grid идёт через range и foreach. Fenom {for} здесь не поддерживается.
  • Pro-сниппеты ставятся как static includes.
  • Стили новых секций лендинга лежат в pagebuilder-sections-pro.css: before_after, case_study, downloads, dynamic_list, filterable_grid, form_builder, how_it_works, locations, media_split, newsletter, notice, portfolio, quote, timeline, accordion.
  • Подписи фильтра и пустого списка берутся из лексикона pagebuilder_fe_filter_* и pagebuilder_fe_list_empty.

Changed

  • Нужен pagebuilder >=1.0.12.
  • Каталог полей Pro читается из общего registry: 27 платных типов, включая editorjs, gallery, daterange, icon, link, documents, address, schedule, datasource, form. product и products требуют capability minishop3.
  • Маршруты Pro регистрируются как route descriptors. Секцию video пакет Pro больше не везёт.
  • ProFeatureProvider реализует FeatureContributionSource: serverContributions() и cmpContributions(). Ставьте Pro той же линейки, что Free. Иначе fatal: abstract methods not implemented.
  • Редактирование UTM требует capability utm.
  • Секции timeline, portfolio, downloads и locations.
  • Capabilities datasources и forms. На сайте работают dynamic_list, filterable_grid и form_builder: query при рендере, GET-фильтры у сетки, CMP Forms и FetchIt submit с CSRF, плюс sync email и webhook.
  • Секции лендинга и контента: how_it_works, before_after, media_split, case_study, newsletter, quote, notice, accordion.
  • REST v1: токены в CMP, GET /pages и GET /pages/{id}, ETag и 304, throttle. Запись страниц остаётся в менеджере и Agent API.
  • Constructor Bundle: вкладка Bundle в CMP, export, dry-run и import UI-типов через UiSectionTypeService.

[1.0.11-beta] - 2026-09-17

Changed

  • Нужен pagebuilder >=1.0.11 (multi-category типы, editable JSON типа, duplicate repeater, media browser reopen, gallery link styles, cacheable / OnSiteRefresh).
  • Commerce/blog-типы с $modx->runSnippet в чанке (products_*, product_*, promo_banner, blog_posts, categories_row, data_table): "cacheable": false — HTML-кеш страницы не замораживает листинг.

[1.0.10-beta] - 2026-09-14

Added

  • Library pull: mgr/library/pull + SectionPullService — подтянуть секции с другой страницы в режиме Связать | Копировать. Link пишет общий master и libraryId на источник и цель.
  • Write-through связанных секций на сервере при save/publish (pbOnBeforeSave → writeThroughDocumentSections). Клиент больше не шлёт N POST на каждый autosave.
  • Маска локальных полей settings.libraryLocalFields (+ совместимый overlay без ключа). Чеклист в инспекторе секции.
  • Шаблоны страниц: таблица pb_page_templates, capability page-templates, процессоры mgr/pagetemplate/*, CMP-реестр и apply на пустой черновик.
  • Save as shared сразу линкует секцию на созданный master (libraryLocalFields: []).

Changed

  • Нужен pagebuilder >=1.0.10 (pbOnBeforeSave / PageDocumentBag, enable/disable в change set, autosave dirty-guard).
  • Capability versions = журнал событий секции (View/Restore). Страничные ревизии документа убраны.
  • Диалог pull: секции не выбираются все сразу; при revision_conflict показывается понятный toast.

Fixed

  • SectionPullService подключается в bootstrap.php (раньше class not found на процессоре pull).
  • При отсутствии таблиц Pro (pb_page_templates и др.) bootstrap создаёт недостающие контейнеры.

Removed

  • RevisionHistoryService, процессоры mgr/versions/*, UI compare/view страничных версий (ProHistoryPanel, VersionCompareDialog, VersionViewDialog, documentDiff).

[1.0.9-beta] - 2026-09-13

Changed

  • Нужен pagebuilder >=1.0.9 (хром вкладки «Секции», токены тулбара/поиска, лексикон подписей полей в repeater, в том числе pricing table).

[1.0.8-beta] - 2026-09-12

Changed

  • Нужен pagebuilder >=1.0.8 (строка media-поля, видимость responsive-тумблера, защита пустых cards).
  • Карточки вариантов квиза одной высоты в сетке options.
  • Ошибки валидации квиза: FetchIt custom.invalid.class вешает классы на поле (pb-quiz__field--error / pb-contact-form__field--error), а не обводку на каждый [data-custom]. Шаг контактов больше не оборачивается вторым красным боксом. Остаются баннер и рамки инпутов.
  • У обложки квиза alt берётся из заголовка квиза, если он есть.

[1.0.7-beta] - 2026-09-12

Added

  • Секция quiz (лид / цена / опрос): пошаговый мастер, опциональный шаг контактов, сумма на сервере, письмо через QuizFormHandler.
  • Фронт: pagebuilder-quiz.js и Pro CSS для панелей/вариантов квиза.
  • Пресет каталога quiz-kitchen (демо расчёта кухни).
  • Документация: docs/sections/quiz-contract.md, запись в каталоге.
  • FetchIt для quiz и contact_form: сниппеты PageBuilderQuiz, PageBuilderContactForm, чанки формы pagebuilderpro_quiz_form, pagebuilderpro_contact_form_fields.
  • Фронтовый лексикон pagebuilder:frontend (RU/EN) для форм, листингов, бейджей товаров, пустых состояний spec/comparison/table.
  • Переопределение подписей квиза в схеме: prev_label, next_label, contact_title, total_label (fieldset Labels).

Changed

  • Чанки квиза и контактной формы идут через FetchIt, а не FormIt/ajaxForm POST в enrich.
  • В Fenom-шаблонах везде {set} (не {var}).
  • pagebuilder-quiz.js: события FetchIt (fetchit:before, fetchit:error, fetchit:success), только let/const.
  • pagebuilder-sections.js переписан на let/const.
  • Pro build кладёт FetchIt-сниппеты из _build/elements/snippets.php.
  • Мастер квиза: видимые ошибки обязательных шагов, aria-invalid / aria-describedby, подписанная группа вариантов, progress track + role="progressbar", вторичная «Назад», autocomplete на контактах, битые картинки обложки/вариантов скрываются.
  • CTA корзины товара: pagebuilder_fe_product_add_to_cart (не EN-заглушка MiniShop3). У карусели aria-label из фронтового лексикона. Кнопки корзины/карусели не меньше 44px.

[1.0.6-beta] - 2026-09-10

Changed

  • Нужен pagebuilder >=1.0.7 (Save = live, link/unlink responsive, плейсхолдеры пустого чанка в превью, правки drag/meta).

[1.0.5-beta] - 2026-09-10

Changed

  • Нужен pagebuilder >=1.0.6 (тумблер Examples в каталоге, default view-mode ресурса, сворачивание responsive-поля).
  • Примеры каталога (JSON presets) уважают Free-настройку pagebuilder_catalog_examples_enabled. Когда выкл., SectionPresetProvider::listPresets() отдаёт пустой список и вкладка «Примеры» скрыта. Файлы пресетов и seed/demo на месте. Тумблер в CMP «Типы секций» (capability presets).

[1.0.4-beta] - 2026-09-10

Changed

  • Нужен pagebuilder >=1.0.5 (скрытие/фильтр каталога, свои миниатюры, отмена несохранённой секции).

Fixed

  • PHP 8 Fenom: warning Undefined array key "pb_product_resource" на promo_banner и product_spotlight, если товар не выбран. Плоские id связей (product_id, pb_product_resource, parent/category) всегда есть, в том числе 0. В чанках !: вместо |default.

[1.0.3-beta] - 2026-09-08

Changed

  • Нужен pagebuilder >=1.0.3 (настраиваемые брейкпоинты, responsive_apply css/manual, Fenom pb_text).
  • ResponsiveValueResolver и ProSectionRenderPipeline читают pagebuilder_responsive_breakpoints / pagebuilder_responsive_apply и responsiveBreakpoints типа. В css-режиме отдаётся разметка .pb-rv.

[1.0.2-beta] - 2026-09-08

Changed

  • Нужен pagebuilder >=1.0.2 (поле MIGX, несколько richtext, шире инспектор из Free).

[1.0.1-beta] - 2026-08-26

Added

  • Capability basket: глобальная вкладка Basket в CMP и процессоры mgr/basket/* (restore/purge секций и строк таблиц по всем ресурсам).
  • Capability api: Agent API (PageBuilderApiService, mgr/api/page/snapshot, mgr/api/page/apply) для сборки секций скриптами и агентами.

Changed

  • Типы полей multiselect, resourcelist, video, xtype ушли в Free core (больше не в Pro fieldTypes()).
  • Нужен pagebuilder >=1.0.1 (UX менеджера Free 1.0.1-beta).
  • У Pro-пресетов локализованные лейблы в метаданных JSON.
  • Полировка contact form handler и Pro-чанков (brands, contact map, pricing, promo, product comparison).

Fixed

  • Pro-чанки: Fenom/BEM выровнены с токенами Free design system.

[1.0.0-pl] - 2026-08-22

Added

  • Плагин Pro: секции, capabilities, процессоры, Vue-модули через pbOnRegisterSectionDefinitions / pbOnRegisterFeatureProviders.
  • Pro-секции: features, video, team, logos, blog_posts, map, tabs, structured content, gallery carousel, data table, commerce (MiniShop3).
  • Commerce-блоки: сетка/карусель товаров, categories/brands row, curated/related products, product spotlight, pricing table, promo banner, spec table, product comparison.
  • Контакты: contact_form, contact_map с ContactFormHandler.
  • Пресеты секций (sections/presets/*.json) и процессор mgr/presets/list.
  • Глобальная библиотека: связанные секции, usage, процессоры mgr/library/*.
  • История ревизий: pb_revisions, mgr/versions/*, UI compare/restore.
  • Журнал событий секции: pb_section_events, аудит при сохранении.
  • Responsive-значения полей (ResponsiveValueResolver) для text/textarea/url.
  • Условия секции (SectionConditionEvaluator, ProSectionVisibilityHandler).
  • VideoEmbedResolver, MapEmbedResolver, MiniShop3Bridge.
  • Pro resource bundle: pro-resource.min.js (библиотека, версии, responsive, условия).

Changed

  • У Pro blog_posts флаг show_intro управляет pdoResources includeContent.
  • У Pro JSON секций по умолчанию requires: ["pro"]. У commerce ещё minishop3.

Последние обсуждения в сообществе MODX.pro