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. Сохранить как shared. Текущая секция сразу линкуется на master (libraryLocalFields пустой).
  3. На другой странице откройте меню Подтянуть с другой страницы. Источник читается из черновика, не из опубликованной копии.
  4. Связать ставит libraryId на источнике и на цели. Копировать вставляет секции без связи.
  5. Поля, которые должны отличаться на странице, отметьте в списке локальных полей (settings.libraryLocalFields).
  6. Сохранить ресурса публикует страницу. Совпадающие поля write-through пишет в master на событии pbOnBeforeSave (правка связанной страницы обновляет master).

В каталоге вкладка Общие блоки видна и при пустом списке. Insert оттуда вставляет linked-секцию или копию.

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

Пример полей

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

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

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

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

Откат

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

См. также