Сниппет [[!Gallery3x]] выводит изображения галереи. Превью он не создаёт — берёт готовые адреса, поэтому работает быстро.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| &resource | текущий ресурс | ID ресурса, фото которого выводить. Действует, если не заданы &resources и &parents. |
| &resources | — | ID ресурсов через запятую; ID с минусом исключает ресурс (5,10,-3). Важнее &parents. |
| &parents | — | ID родителей через запятую: фото самих ресурсов и их потомков (до 10 уровней). 0 — весь сайт. |
| &ids | — | ID конкретных фото через запятую. Тогда &resource/&resources/&parents не учитываются, а порядок — как в списке (если не задан &sortby). |
| &group | — | Только фото из групп (несколько — через запятую). |
| &where | — | Дополнительные условия xPDO в JSON: {"special":1}, {"extra_num:>":2000}. |
| &showInactive | 0 | 1 — выводить и выключенные фото. |
| &sortby | position | Поле сортировки: position, createdon, name, id, extra_num, extra_date и др. |
| &sortdir | ASC | ASC или DESC. |
| &limit | 0 | Сколько фото вывести, 0 — все. |
| &offset | 0 | Сколько пропустить с начала. |
| &tplOuter | tpl.Gallery3x.Fancybox.outer | Чанк-обёртка. |
| &tplThumb | tpl.Gallery3x.Fancybox.thumbItem | Чанк одного фото. При &fenom=`1` не используется. |
| &fenom | 0 | 1 — обработать &tplOuter через pdoTools (Fenom) и передать в него массив {$files}. |
| &source | — | Источник файлов для адресов (ID или имя). Пусто — источник, в котором лежит фото. |
| &return | — | data или json — данные вместо HTML (из тега MODX массив приходит JSON-строкой); ids — список ID через запятую. |
| &toPlaceholder | — | Положить данные в плейсхолдер с этим именем, сниппет ничего не выводит. |
| &debug | 0 | 1 — вместо галереи показать параметры, условия выборки и найденные данные. |
Плейсхолдеры фото (&tplThumb)
| Плейсхолдер | Значение |
|---|---|
[[+id]] | ID фото |
[[+resource_id]] | ID ресурса |
[[+name]] | Название |
[[+alt]] | Альтернативный текст |
[[+description]] | Описание (HTML) |
[[+original_url]] | Адрес оригинала |
[[+small_url]], [[+medium_url]], [[+big_url]] | Адреса превью — по одному на каждый размер источника ([[+имя_url]]) |
[[+file]], [[+path]] | Имя файла и папка внутри источника |
[[+type]], [[+size]] | MIME-тип и размер в байтах |
[[+group]] | Группы через || |
[[+special]], [[+active]], [[+position]] | «Особенное», активность, позиция |
[[+extra_text]], [[+extra_text2]], [[+extra_num]], [[+extra_date]] | Дополнительные поля |
[[+createdon]], [[+updatedon]] | Даты (Y-m-d H:i:s) |
[[+caption_json]] | Подпись (название + описание) готовым JS-литералом — для lightGallery |
Плейсхолдеры обёртки (&tplOuter)
[[+thumbs]]— все фото, оформленные чанком&tplThumb.[[+first.medium_url]],[[+first.name]]и т.д. — поля первого фото (для большого фото над лентой).- В Fenom:
{$files}— массив всех фото,{$first}— первое.
Примеры
Сетка Fancybox:
[[!Gallery3x?
&tplOuter=`tpl.Gallery3x.Fancybox.GridOuter`
&tplThumb=`tpl.Gallery3x.Fancybox.GridItem`
]]
Только «особенные» фото группы «Интерьер», новые сначала:
[[!Gallery3x?
&group=`Интерьер`
&where=`{"special":1}`
&sortby=`createdon`
&sortdir=`DESC`
&tplOuter=`tpl.Gallery3x.Fancybox.GridOuter`
&tplThumb=`tpl.Gallery3x.Fancybox.GridItem`
]]
Свой Fenom-чанк обёртки:
{* чанк tpl.mysite.gallery *}
<div class="gallery">
{foreach $files as $f}
<a href="{$f.big_url}"><img src="{$f.small_url}" alt="{$f.alt}" loading="lazy"></a>
{/foreach}
</div>
[[!Gallery3x? &fenom=`1` &tplOuter=`tpl.mysite.gallery`]]
Данные в плейсхолдер — и разметка в Fenom-шаблоне:
[[!Gallery3x? &toPlaceholder=`photos`]]
{foreach $_modx->getPlaceholder('photos') as $f}
<img src="{$f.medium_url}" alt="{$f.alt}">
{/foreach}
Дата из доп. поля: [[+extra_date:strtotime:date=`%d.%m.%Y`]].
Вспомогательные сниппеты
g3xGetImage— адрес превью по ID фото:[[g3xGetImage? &input=`17` &options=`medium`]]или модификатором{$id | g3xGetImage : 'small'}. Размер — имя из источника илиoriginal; по умолчаниюmedium. См. pdoResources.g3xCollectionsThumbnail— превью в таблице Collections. См. Интеграция с Collections.