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.14-beta, требует pagebuilder1.0.14. Free и Pro этой линии ставьте вместе: ProFeatureProvider реализует serverContributions() и cmpContributions(). Старый Pro без этих методов даёт fatal error при загрузке.

Флаги Pro

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

ФлагНазначение
proЛицензия Pro
libraryОбщие блоки: save/link/insert/edit master, pull с другой страницы, write-through (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)
conditionssettings.conditions и evaluator (loggedIn, guest, context, GET, …)
presetsВкладка Примеры в каталоге (скрывается при pagebuilder_catalog_examples_enabled = 0)
i18n-copyКопирование секции между контекстами
advanced-fields27 типов полей в панели управления (группа Pro в списке). Без 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/*
formsCMP Forms, form_builder, FetchIt, CSRF, honeypot. Письмо и webhook после commit. Submissions в БД не пишутся
apiAgent API и токены REST v1 (mgr/resttoken/*, вкладка API tokens)

Модуль 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 страницыWrite-through synced-полей в master на сервере (pbOnBeforeSave)

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

При рендере master merge + локальные поля из libraryLocalFields. Без ключа в settings остаётся старый overlay (локальные ключи перекрывают 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 и задаёт старт «Начать подбор».

Constructor Bundle

Вкладка Bundle: export, dry-run (create, update, conflict) и import UI-типов одной транзакцией через UiSectionTypeService. Conflict не импортируется. Подробнее: Панель управления.

В бандл v1 не кладите secrets, токены, содержимое страниц и строки таблиц. Формы и datasources в этот формат не входят.

Действия 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 / get / 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-типов
mgr/resttoken/*Токены REST API v1
mgr/ms3/products/searchПоиск товаров для commerce-секций
mgr/ms3/categories/searchПоиск категорий miniShop3 (parent в сетках и каруселях)

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