Галерея (PRO)
Много файлов в одном поле, порядок задаётся перетаскиванием. У каждого своя подпись, описание и группа, и редактируется каждый отдельно.
Настройки: источник и путь, как у файла, стратегия имени, как у картинки, плюс две собственные:
| Настройка | Что делает |
|---|---|
| Группы файлов | Именованные группы: одна галерея питает несколько мест на странице |
| Миниатюры | Какие размеры генерировать, описываются JSON-ом |
Описание миниатюры выглядит так:
{"webp": {"w": 120, "h": 90, "q": 90, "zc": "1", "bg": "000000", "f": "webp"}}Получатся миниатюры 120×90 в WebP, в папке webp рядом с оригиналами.
Вывод — массив; у каждого элемента те же ключи, что у файла, плюс type, preview и groups:
<div class="gallery">
{foreach $images as $image}
{if $image.type === 'image'}
<img src="/{$image.url}" alt="{$image.title ?: $image.name}">
{/if}
{/foreach}
</div>В галерее лежат любые файлы, не только картинки
Видео, PDF и фотография прекрасно уживаются рядом; различает их type, а видео можно задать собственную обложку. Ради этого и стоит ветвиться по type в цикле.
Файлы живут в своей таблице, и из этого следует
Они хранятся отдельно от записи, а не внутри её значения. Поэтому «обязательное» для этого типа скрыто — проверять на самой записи нечего, — и галерея пропускается при сохранении значений секций ресурса и пользователя.