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.

См. также ​