
- MODX 3
- PHP 8.2
- Vue 3


Версия: Free.
Ссылка на YouTube или Vimeo, либо загруженный ролик. После сохранения появляются адрес плеера (embed_url), название сервиса (provider) и ссылка на просмотр (watch_url). Если тип поля video или в имени есть «video», те же значения записываются ещё и ключами video_*.
В чанке выводите адрес плеера и сервис, не только исходный url. Набор фотографий делают полем gallery, не video.
{
"name": "video",
"type": "video",
"label": "Видео",
"tab": "Контент",
"width": 100,
"active": true
}Объект { url, poster }. poster: media-объект как у image. Enrich добавляет embed_url, provider, watch_url.
Ключ video в данных секции после save enrich (SectionFieldEnricher + VideoEmbedResolver):
{
"video": {
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"embed_url": "https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ",
"provider": "youtube",
"watch_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"poster": {
"url": "assets/images/hero.jpg",
"id": 12,
"path": "assets/images/",
"filename": "hero.jpg",
"extension": "jpg",
"name": "hero",
"title": "hero.jpg",
"width": 1920,
"height": 1080,
"size": 245760,
"type": "image"
}
},
"video_embed_url": "https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ",
"video_provider": "youtube",
"video_watch_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}video_embed_url, video_provider, video_watch_url добавляются, если имя поля содержит video или секция имеет type=video.<iframe src="[[+video.embed_url]]" title="Video"></iframe>
[[$pagebuilder_partial_image?
&image=`[[+video.poster]]`
&alt=`[[+video.poster.title]]`
&class=`pb-video__poster`
]]<iframe src="{$video.embed_url|escape}" title="Video"></iframe>
{include 'pagebuilder_partial_image' image=$video.poster alt=$video.poster.title class='pb-video__poster'}Плоские video_embed_url / video_provider / video_watch_url: только для секции type=video или имени поля с «video».
Для полей с name, которые сохраняются в данных секции:
| Ключ | Тип | Роль | Панель |
|---|---|---|---|
tab | string | Подзаголовок группы в инспекторе | да |
width | 25–100 | Ширина поля в % строки (flex) | да |
description | string | Подсказка под подписью | да |
default | any | Начальное значение новой секции | да |
active | bool | false: скрыть поле в инспекторе | да |
required | bool | Обязательно при publish (черновик сохраняется) | да |
poster: вложенный media-объект. Enrich: embed_url, provider, watch_url.Подробнее: обзор полей.