pbBlocks
Выводит блоки конструктора, прикреплённые к ресурсу, — то самое тело страницы, которое собрали в конструкторе.
[[!pbBlocks]]Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
resource | текущий ресурс | Чьи блоки выводим. |
parent | Синоним resource. | |
limit | Вывести только первые N блоков. | |
offset | 0 | Пропустить первые N блоков. |
tpl | Чанк, получающий каждый блок как item. Без него каждый блок рендерится своим чанком — тем, который задан в его конструкторе. |
Плюс tplWrapper, tplEmpty и outputSeparator — но только если задан tpl.
Как выбирается вывод
Без tpl сниппет зовёт у каждого блока его собственный render(), а тот берёт чанк из полей chunk и chunk_path. Это обычный случай: конструктор уже знает, как выглядит каждый блок.
С tpl вы берёте это на себя — удобно, когда те же блоки в другом месте нужны с другой разметкой или когда каждый надо во что-то завернуть.
Только опубликованное и только на своём языке
Сниппет ходит через связь blocks() ресурса, поэтому отдаёт блоки опубликованные (published_at заполнен и уже наступил), не удалённые мягко и относящиеся к текущему языку. Неопубликованный блок не попадёт на фронт без всяких дополнительных условий с вашей стороны.
Примеры
Тело текущей страницы
[[!pbBlocks]]Блоки другой страницы
[[!pbBlocks? &resource=`15`]]Сначала три блока, потом остальные
[[!pbBlocks? &limit=`3`]]
...
[[!pbBlocks? &offset=`3` &limit=`100`]]Из Fenom
{foreach $modx->resource->blocks()->get() as $block}
{$block->render()}
{/foreach}Ничего не вывелось?
Сперва проверьте published_at у блоков, а уже потом маршруты и шаблоны — неопубликованный блок пропускается молча.