Плейсхолдеры чанков
В MODX-тегах — [[+ключ]], в Fenom — {$ключ}. Доступны все колонки
таблицы prism_item плюс перечисленное ниже.
Всё, что ввёл человек, — название, alt, описание, имя файла, цвет, теги, значения своих полей
и EXIF — Prism экранирует до подстановки в чанк. MODX сам этого не делает: подстановка
плейсхолдера — это обычная замена в строке, и заголовок вида "><script>… иначе стал бы кодом на
каждой странице с галереей.
Поэтому не добавляйте :htmlent, :htmlspecial или |escape поверх — получите &amp;
вместо &. Это относится и к чанкам, которые вы пишете сами: они защищены по умолчанию.
Не экранируется [[+embed_code]] — это разметка по назначению, уже прошедшая санитайзер, — и всё,
что компонент генерирует сам: адреса, размеры, хеши.
В JSON для панели администратора значения остаются сырыми: там их выводит React, который экранирует сам.
Колонки width и height — это размеры оригинала. Если у элемента задан
кадр, превью считаются от кадра, и фактические размеры дают
thumb_width/thumb_height и preset.ИМЯ.out_*. В атрибуты <img> берите их.
Общие
| Плейсхолдер | Что даёт |
|---|---|
[[+url]] | Оригинальный файл |
[[+thumb]] | Превью пресета из &preset |
[[+thumb_webp]] | То же в webp |
[[+srcset]], [[+srcset_webp]] | Готовые srcset по плотностям пресета |
[[+thumb_width]], [[+thumb_height]] | Реальные размеры отдаваемого превью |
[[+blurhash]] | Компактная заглушка изображения |
[[+color]] | Доминантный цвет, #rrggbb |
[[+focal_position]] | Точка фокуса как значение object-position, например 40% 60% |
[[+cropped]] | 1, если у элемента задан кадр |
[[+itemClass]] | Класс плитки по текущей раскладке |
[[+galleryId]] | Id контейнера этой галереи |
[[+extension]], [[+icon]], [[+size_formatted]] | pdf, ключ значка, 2.3 MB |
[[+tags]], [[+tagAliases]], [[+tagList.0.name]] | Теги строкой, алиасы, список |
[[+exif.Make]], [[+exif.DateTimeOriginal]] | EXIF, сохранённый при загрузке |
[[+extra.ключ]] | Значение пользовательского поля |
[[+idx]], [[+first]], [[+last]], [[+total]] | Позиция в выборке; idx с 1, first/last — 1 или пусто |
Пресеты
| Плейсхолдер | Что даёт |
|---|---|
[[+preset.ИМЯ.url]] | Адрес превью в формате по умолчанию |
[[+preset.ИМЯ.webp]], [[+preset.ИМЯ.2x]], [[+preset.ИМЯ.webp.2x]] | Варианты формата и плотности |
[[+preset.ИМЯ.srcset]], [[+preset.ИМЯ.srcset.webp]] | Готовые srcset |
[[+preset.ИМЯ.width]], [[+preset.ИМЯ.height]] | Рамка пресета как она задана; у contain высота может быть 0 |
[[+preset.ИМЯ.out_width]], [[+preset.ИМЯ.out_height]] | Реальные размеры отдаваемой картинки |
width — это рамка пресета, out_width — сколько пикселей на самом деле в файле. Для crop они
совпадают, для contain — нет: оригинал только уменьшается. Лайтбоксу нужны именно out_*.
Доступны только пресеты, перечисленные в &preset и &presets.
Видео
| Плейсхолдер | Что даёт |
|---|---|
[[+provider]], [[+provider_id]] | youtube, vimeo, dailymotion, rutube, local |
[[+video_url]] | Страница видео у провайдера или локальный файл |
[[+embed_url]], [[+embed_url_autoplay]] | Адрес iframe плеера; второй — с автозапуском |
[[+embed_code]] | Готовый санитизированный iframe |
[[+poster]] | Обложка через &preset |
[[+duration]], [[+duration_formatted]] | Секунды и м:сс / ч:мм:сс |
Файлы
| Плейсхолдер | Что даёт |
|---|---|
[[+download_url]] | Ссылка на файл; со счётчиком — через download.php?id= |
[[+downloads]] | Число скачиваний |
Обёртка
В чанке &tplOuter доступны [[+output]] (склеенные элементы), [[+total]] и [[+galleryId]].