Перейти к основному содержимому

Плейсхолдеры чанков

В MODX-тегах — [[+ключ]], в Fenom — {$ключ}. Доступны все колонки таблицы prism_item плюс перечисленное ниже.

Значения приходят уже экранированными

Всё, что ввёл человек, — название, alt, описание, имя файла, цвет, теги, значения своих полей и EXIF — Prism экранирует до подстановки в чанк. MODX сам этого не делает: подстановка плейсхолдера — это обычная замена в строке, и заголовок вида "><script>… иначе стал бы кодом на каждой странице с галереей.

Поэтому не добавляйте :htmlent, :htmlspecial или |escape поверх — получите &amp;amp; вместо &. Это относится и к чанкам, которые вы пишете сами: они защищены по умолчанию.

Не экранируется [[+embed_code]] — это разметка по назначению, уже прошедшая санитайзер, — и всё, что компонент генерирует сам: адреса, размеры, хеши.

В JSON для панели администратора значения остаются сырыми: там их выводит React, который экранирует сам.

width/height против thumb_width/thumb_height

Колонки 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]]Реальные размеры отдаваемой картинки
out_width против width

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]].