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


Объединяет секции Контакты и Карта: слева (или сверху) контакты и CTA, рядом iframe карты.

Заполните контактные поля и Точку на карте. Один блок вместо двух отдельных секций.
| Параметр | Значение |
|---|---|
| key | contact_map |
| Слой | Pro |
| Категория | конверсия (conversion) |
| Chunk | pagebuilderpro_contact_map |
| Требования | pro |
Заполните поля в инспекторе секции на ресурсе. Описание типов полей: справочник типов.
title) Тип text. Необязательное.
text) Тип textarea. Необязательное.
phone) Тип text. Необязательное.
email) Тип text. Необязательное.
location) Тип map. Обязательное. Точка на карте. На сайте. iframe через MapEmbedResolver.
button_label) Тип text. Необязательное.
button_url) Тип url. Необязательное.
Секция pb-contact-map: контакты + iframe карты.
Пример JSON после сохранения секции. Для media, video и map значения на выводе могут быть обогащены:
{
"title": "Заголовок секции",
"text": "Дополнительный текст под заголовком.",
"phone": "+7 (999) 123-45-67",
"email": "hello@example.com",
"location": {
"lat": 55.751244,
"lng": 37.618423,
"embed_url": "https://yandex.ru/map-widget/v1/..."
},
"button_label": "Подробнее",
"button_url": "https://example.com/action"
}Fenom chunk pagebuilderpro_contact_map:
<section class="pb-section pb-section--contact-map pb-contact-map{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="contact_map"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner pb-contact-map__inner">
{if $title}
<h2 class="pb-heading pb-contact-map__title">{$title|escape}</h2>
{/if}
<div class="pb-contact-map__layout">
<div class="pb-contact-map__details">
{if $text}
<p class="pb-contact-map__text">{$text|escape}</p>
{/if}
{if $phone}
<p class="pb-contact-map__phone"><a href="tel:{$phone|escape:'url'}">{$phone|escape}</a></p>
{/if}
{if $email}
<p class="pb-contact-map__email"><a href="mailto:{$email|escape:'url'}">{$email|escape}</a></p>
{/if}
{if $button_label && $button_url}
<a class="pb-contact-map__button pb-button" href="{$button_url|pb_href|escape}">{$button_label|escape}</a>
{/if}
</div>
{if $map_embed_url}
<div class="pb-contact-map__map">
<iframe
class="pb-contact-map__frame"
title="{$title|default:'Map'|escape}"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade"
src="{$map_embed_url|escape}"
></iframe>
</div>
{/if}
</div>
</div>
</section>