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

Социальное доказательство: цитата клиента, имя, роль и аватар. Несколько отзывов выводятся сеткой.
Repeater Отзывы: Цитата, Имя, Должность, Фото. Фото необязательно, но улучшает доверие.
| Параметр | Значение |
|---|---|
| key | testimonials |
| Слой | Free |
| Категория | доверие (social) |
| Chunk | pagebuilder_testimonials |
| Требования | — |
Заполните поля в инспекторе секции на ресурсе. Описание типов полей: справочник типов.
title) Тип text. Необязательное.
items) Тип repeater. Обязательное. Повторяющиеся строки. Кнопка «Добавить» в инспекторе.
В каждой строке:
| Поле | Тип | Подпись | Обязательно |
|---|---|---|---|
quote | textarea | Цитата | да |
name | text | Имя | да |
role | text | Должность | нет |
avatar | image | Фото | нет |
Сетка pb-testimonials: blockquote, подпись автора, аватар через partial.
Пример JSON после сохранения секции. Для media, video и map значения на выводе могут быть обогащены:
{
"title": "Заголовок секции",
"items": [
{
"_rowId": "00000000-0000-4000-8000-000000000001",
"quote": "Отличный сервис, рекомендую коллегам.",
"name": "Иван Петров",
"role": "Директор, ООО Пример",
"avatar": {
"url": "assets/images/example.jpg",
"id": 12,
"filename": "example.jpg",
"extension": "jpg",
"title": "example.jpg",
"width": 1920,
"height": 1080,
"type": "image"
}
}
]
}Fenom chunk pagebuilder_testimonials:
<section class="pb-section pb-section--testimonials pb-testimonials{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="testimonials"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner pb-testimonials__inner">
{if $title}
<h2 class="pb-heading pb-testimonials__title">{$title|escape}</h2>
{/if}
<div class="pb-testimonials__grid">
{foreach $items as $item}
<blockquote class="pb-testimonials__item">
{if $item.avatar}
{include 'pagebuilder_partial_image' image=$item.avatar alt=$item.name class='pb-testimonials__avatar'}
{/if}
<p class="pb-testimonials__quote">{$item.quote|escape}</p>
<footer class="pb-testimonials__footer">
<div class="pb-testimonials__author">{$item.name|escape}</div>
{if $item.role}
<div class="pb-testimonials__role">{$item.role|escape}</div>
{/if}
</footer>
</blockquote>
{/foreach}
</div>
</div>
</section>core/components/pagebuilder/sections/testimonials.json