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

PageBuilder Pro ​

Дополнение pagebuilderpro расширяет бесплатный редактор и подтягивает ядро pagebuilder. Текущая линия: 1.0.17-beta, требует pagebuilder ≥ 1.0.17.

Free и Pro этой линии ставьте вместе: ProFeatureProvider реализует serverContributions() и cmpContributions(). Старый Pro без этих методов даёт fatal error при загрузке.

Флаги Pro ​

ProFeatureProvider регистрирует флаги. Vue-редактор читает список из PageBuilderConfig.capabilities.

ФлагНазначение
proПакет pagebuilderpro установлен
libraryОбщие блоки: save/link/insert/edit master, pull с другой страницы, запись synced-полей в master (pb_library_items)
versionsЖурнал событий секции (create/update/copy/remove/enable/disable) + View / Restore
page-templatesШаблоны страниц: упорядоченные пустые секции (pb_page_templates, mgr/pagetemplate/*)
responsiveЗначения полей отдельно для desktop, tablet и mobile (text, textarea, url, number, currency, richtext, slug). Имена alt, caption и slug вкладок не получают
conditionssettings.conditions и evaluator (loggedIn, guest, context, GET, …)
presetsВкладка Примеры в каталоге (скрывается при pagebuilder_catalog_examples_enabled = 0)
i18n-copyКопирование секции между контекстами
advanced-fields23 типа полей в панели управления (группа Pro в списке). Всего Pro-типов 27: к ним добавляются datasource, form, product и products. Без Pro доступны 35 типов Free
basketГлобальная корзина в панели управления (mgr/basket/*)
utmНовые UTM-правила и реестр. Уже опубликованные правила исполняет Free
collectionsВкладки ресурса из панели управления (pb_collections, mgr/collection/*). Нужна ещё pagebuilder_collections_enabled
datasourcesDynamic list и Filterable grid: провайдеры modx-resources, pagebuilder-tables, minishop3, mgr/datasource/*
minishop3Поля product и products и секции витрины. Флага нет, пока пакет miniShop3 не установлен
formsCMP Forms, form_builder, FetchIt, CSRF, honeypot. Письмо и webhook после commit. Submissions в БД не пишутся
apiAgent API и токены REST v1 (mgr/resttoken/*, вкладка API tokens)
image-cropКадрирование полей image/gallery (mgr/media/crop)

На вкладке ресурса модуль pro-resource.min.js добавляет панель Наследовать / Библиотека. История секции открывается из меню строки.

Pro-секции ​

Определения лежат в pagebuilderpro/sections/. Chunk: pagebuilderpro_{key}. Новые типы регистрирует plugin на pbOnRegisterSectionDefinitions.

ГруппаПримеры ключей
Универсальныеfeatures, team, tabs
Контент и конверсияpricing_table, contact_form, quiz, spec_table, how_it_works, case_study, newsletter, accordion
Дополнительныеmap, contact_map, logos, blog_posts, timeline, portfolio, downloads, locations
Datasources и формыdynamic_list, filterable_grid, form_builder
Коммерцияproducts_grid, categories_row, product_spotlight, promo_banner

Секции витрины требуют miniShop3 (requires: ["pro", "minishop3"]). Каталог на сайте: Секции Pro.

Секции quiz и contact_form на фронте нуждаются в FetchIt.

Общие блоки ​

После Сохранить как shared секция на текущей странице сразу связывается с созданным master (libraryLocalFields: []).

ДействиеПоведение
Каталог → Общие блоки → InsertВставка linked или копии с master
Меню → Подтянуть с другой страницыmgr/library/pull: режим Связать или Копировать
Чеклист локальных полейsettings.libraryLocalFields в инспекторе
Save / publish страницыЗапись synced-полей в master на сервере (pbOnBeforeSave)

Подтянуть читает черновик источника. Связать создаёт master или берёт существующий, проставляет libraryId на источнике и вставляет linked-секцию на целевую. Копировать добавляет секции без связи.

При отрисовке master сливается с локальными полями из libraryLocalFields. Без ключа в settings локальные ключи перекрывают master. После записи Library сбрасывается HTML-кеш pagebuilder/*.

Вкладка Общие блоки в каталоге видна даже при пустом списке.

Журнал событий секции ​

Capability versions: журнал событий одной секции, не снимки всей страницы. Из меню строки: View / Restore (mgr/sectionevents/*). Page-level UI mgr/versions/* в текущей линии нет.

Шаблоны страниц ​

Capability page-templates. Именованный скелет: упорядоченный список типов секций без контента (pb_page_templates).

ГдеЧто делает
CMP → Шаблоны страницCRUD: имя, ID шаблонов MODX, порядок типов, default
Редактор → Сохранить как шаблонБерёт только type / typeVersion с текущей страницы
Пустой outlineКнопки «Применить …» для подходящих шаблонов

Apply пишет черновик через mgr/pagetemplate/apply (на непустой draft нужен force).

Примеры ​

Вкладка Примеры в каталоге добавления: готовые блоки с текстом (capability presets, mgr/presets/list). После вставки поля можно править. Скрытие без удаления JSON: pagebuilder_catalog_examples_enabled или тумблер в CMP Blocks.

В пакете 11 пресетов (pagebuilderpro/sections/presets/):

КлючТип секции
hero-centeredhero
cta-bannercta
stats-launchstats
features-gridfeatures
contact-splitcontact_map
blog-compact-listblog_posts
pricing-saaspricing_table
pricing-utmdata_table
products-heropromo_banner
quiz-kitchenquiz

pricing-utm это таблица data_table, не тарифы. products-hero требует miniShop3. quiz-kitchen требует FetchIt и задаёт старт «Начать подбор».

Bundle ​

Вкладка скрыта (BUNDLE_ENABLED = false). Маршруты mgr/bundle/* не регистрируются. Вызов из менеджера отвечает Invalid action. Не обещайте вкладку, пока флаг не включат в выпуске.

Шаги export и состав бандла v1: Панель управления → Bundle.

Действия connector (Pro) ​

Все запросы идут POST на assets/components/pagebuilder/connector.php с action=mgr/..., как у Vue-редактора.

ДействиеНазначение
mgr/library/listСписок элементов библиотеки
mgr/library/saveСохранить или обновить элемент
mgr/library/removeУдалить элемент
mgr/library/adjustusageСчётчик использования элемента библиотеки
mgr/library/pullПодтянуть секции с другой страницы (link | copy)
mgr/sectionevents/listЖурнал событий секции
mgr/sectionevents/getОдна запись журнала / снимок секции
mgr/sectionevents/recordДобавить запись в журнал (внутреннее / тесты)
mgr/sectionevents/restoreВосстановить состояние секции из журнала
mgr/pagetemplate/list / save / removeCRUD шаблонов страниц
mgr/pagetemplate/applyПрименить шаблон на черновик
mgr/presets/listСписок примеров для вкладки каталога
mgr/basket/*Глобальная корзина в панели управления
mgr/api/page/snapshot / applyAgent API
mgr/datasource/*Превью datasource
mgr/form/*CMP Forms
mgr/bundle/*Export, dry-run и import UI-типов. Пока BUNDLE_ENABLED = false, действие не регистрируется
mgr/resttoken/*Токены REST API v1
mgr/ms3/products/searchПоиск товаров для commerce-секций
mgr/ms3/categories/searchПоиск категорий miniShop3 (parent в сетках и каруселях)

Связанные страницы ​