
PageBuilder
Визуальный конструктор секций для MODX 3: черновик и публикация без перезаписи content ресурса
- MODX 3
- PHP 8.2
- Vue 3


Секция portfolio показывает проекты из repeater.

| Параметр | Значение |
|---|---|
| key | portfolio |
| Слой | Pro |
| Категория | контент (content) |
| Chunk | pagebuilderpro_portfolio |
| Требования | pro |
| Поле | Тип | Обязательно | Назначение |
|---|---|---|---|
title | text | нет | Заголовок секции |
items | repeater | да | Проекты |
items.image | image | нет | Обложка |
items.title | text | да | Название |
items.url | url | нет | Ссылка |
items.text | textarea | нет | Короткий текст |
Карточки лежат в div.pb-grid.pb-grid--cards. Картинка идёт через chunk pagebuilder_partial_image, только если image задан. Ссылка рисуется, если есть url. Текст ссылки равен title. Пустой repeater оставляет пустую сетку.
{
"title": "Работы",
"items": [
{
"image": { "url": "assets/images/case.jpg" },
"title": "Витрина",
"url": "/cases/store",
"text": "Каталог на miniShop3"
}
]
}Fenom chunk pagebuilderpro_portfolio:
<section class="pb-section pb-section--portfolio pb-portfolio{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="portfolio"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner">
{if $title}<h2 class="pb-heading">{$title|escape}</h2>{/if}
<div class="pb-grid pb-grid--cards">
{foreach $items as $item}
<article class="pb-portfolio__item">
{if $item.image}{include 'pagebuilder_partial_image' image=$item.image alt=$item.title class='pb-portfolio__image'}{/if}
<h3>{$item.title|escape}</h3>
{if $item.text}<p>{$item.text|escape}</p>{/if}
{if $item.url}<p><a href="{$item.url|escape}">{$item.title|escape}</a></p>{/if}
</article>
{/foreach}
</div>
</div>
</section>