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

Общие блоки ​

Результат: правка master попадает на связанные страницы. Нужны PageBuilder Pro и capability library (общая библиотека секций).

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

  1. Два опубликованных ресурса с [[!PageBuilder]] в шаблоне.
  2. Capability library включена.
  3. На исходной странице секция уже заполнена.

Шаги ​

  1. Соберите секцию на исходной странице.
  2. Сохранить как общий блок. Текущая секция сразу связывается с master (libraryLocalFields пустой).
  3. На другой странице откройте меню Подтянуть с другой страницы. Источник читается из черновика, не из опубликованной копии.
  4. Связать переписывает секцию источника в общий блок и очищает её поля. Контент остаётся в master. На цели ставится libraryId, linked и пустой libraryLocalFields. Нужно право save на источник. Копировать вставляет секции без связи.
  5. Поля, которые должны отличаться на странице, отметьте в списке локальных полей (settings.libraryLocalFields).
  6. Сохранить ресурса публикует страницу. Совпадающие поля пишет в master на событии pbOnBeforeSave.

В каталоге вкладка Общие блоки видна и при пустом списке. Вставка оттуда всегда связывает секцию с master (libraryId, linked, пустые data). Копия без связи есть только в режиме Копировать.

На сайте master сливается с локальными полями. Если ключа libraryLocalFields нет, локальные ключи перекрывают master. Запись в Library сбрасывает HTML-кеш pagebuilder/*.

Пример полей ​

Исходная секция hero, Title Общий заголовок. После Сохранить как общий блок список локальных полей пуст: заголовок общий.

На второй странице Связать. В settings.libraryLocalFields отметьте title, если на этой странице заголовок свой. Остальные поля остаются от master. Копировать вставит тот же hero без libraryId.

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

Поменяйте на master поле, которого нет в libraryLocalFields, и сохраните исходный ресурс. На связанной странице поле совпадает. Поле из списка локальных на второй странице не затирается.

Откат ​

Подтяните режимом Копировать или удалите элемент библиотеки в CMP. Процессор: mgr/library/pull.

См. также ​