Наборы блоков
Свежая установка отдаёт пустой конструктор: открываете страницу, жмёте «добавить блок» и видите пустой список. Чтобы получить хоть что-то, надо завести тип с полями и написать шаблон — работа разработчика, а не редактора.
Наборы закрывают этот разрыв: одна кнопка превращает «поставил и не понял, что делать» в «поставил и собрал страницу».
PageBlocks → Конструктор → Блоки → кнопка «Наборы».
Набор бесплатный и входит в обычную поставку.
Как поставить
Три шага, те же, что у сидов компонента: выбрать набор → прочитать план → установить. План читается до записи не для порядка: набор пишет в таблицы конструктора, и список изменений видно заранее, а не по факту.
Установка идемпотентна — ищет по имени и создаёт только недостающее. Повторный запуск на готовой базе показывает «уже есть» и ни одной строки «создать».
Снос — там же, и тоже с планом: видно, сколько типов и сколько расставленных по страницам блоков уйдёт.
Что внутри
Семь типов. Критерий отбора — собрать лендинг за десять минут и показать разные механики полей, а не набрать побольше позиций.
| Тип | Чанк | Что показывает |
|---|---|---|
| Обложка | pageblocks.block.hero | медиа, кнопка, раскладка списком |
| Текст | pageblocks.block.richtext | богатый текст, ширина колонки |
| Карточки | pageblocks.block.cards | повторитель и медиа внутри строки |
| Галерея | pageblocks.block.gallery | повторитель из картинок |
| Вопросы и ответы | pageblocks.block.faq | повторитель и богатый текст в строке |
| Призыв к действию | pageblocks.block.cta | две кнопки |
| Отступ | pageblocks.block.spacer | служебный блок без контента |
Это типы, а не заполненные блоки
Набор ставит схемы с полями — то, из чего редактор собирает страницу. Готовые блоки с текстом и картинками — это библиотека блоков, отдельная история версии 3.1.
Повторители
У карточек, галереи и вопросов есть поле-повторитель items. Вместе с блоками набор создаёт три таблицы конструктора под их строки; строки лежат в общей pb_table_data, поэтому ни своей миграции, ни своей модели повторителю не нужно.
Галерея собрана повторителем, а не полем «Галерея»: само поле galleryfield платное, а набор бесплатный, и блок с замком внутри было бы нечем заполнить.
Своя вёрстка
Шаблоны лежат в core/components/pageblocks/elements/blocks/ и адресуются полем chunk_path у типа блока.
Чтобы поправить вёрстку под себя — скопируйте файл в своё место и поправьте chunk_path. Файлы компонента при этом остаются нетронутыми, и обновление спокойно их перезапишет. Правка файла прямо в каталоге компонента переживёт ровно до следующего обновления.
Стили — assets/components/pageblocks/css/web/pb.starter.css, собраны на токенах pb.blocks.css: тема сайта переопределяет их на той же обёртке .pb-page.
Картинки в каталоге добавления
Карточка типа показывает картинку вёрстки — иначе блок выбирают по названию вслепую, а «Карточки» в три колонки и «Галерея» в три колонки словами не отличаются.
Путь хранится в колонке preview и проставляется установщиком набора. Поле необязательное: тип, заведённый руками, рисуется той же карточкой без картинки.
Сид вторым входом
Нужен там, где кнопку никто не нажмёт: автоматическая сборка стенда, прогон на чистой базе перед релизом.
# план
php core/components/pageblocks/vendor/bin/phinx seed:run \
-c core/components/pageblocks/src/phinx.php -s StarterBlocksSeed
# запись
PB_APPLY=1 php core/components/pageblocks/vendor/bin/phinx seed:run \
-c core/components/pageblocks/src/phinx.php -s StarterBlocksSeedPB_REMOVE=1 переключает оба шага на снос. После записи сбросьте кэш MODX.
На шаред-хостинге кнопка надёжнее
Сид требует CLI, а на части хостингов exec() запрещена. Кнопка работает в том же процессе, что менеджер, и от шелла не зависит совсем.