Gallery3xFiles
Gallery3xFiles
Сниппет для вывода файловых вложений ресурса на фронтенде сайта. Отображает файлы, загруженные через вкладку «Файлы G3x» в редакторе ресурса MODX. Поддерживает фильтрацию, сортировку, группировку и вывод через Fenom или стандартный синтаксис MODX.
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
resource |
int | ID текущего ресурса | ID ресурса, файлы которого выводятся |
resources |
string | — | Список ID ресурсов через запятую. Отрицательное значение исключает ресурс (например: 5,10,-3) |
parents |
string | — | ID родительских ресурсов через запятую. Выводятся файлы всех дочерних ресурсов (глубина до 10 уровней) |
group |
string | — | Фильтр по группе или нескольким группам через запятую. Поддерживается мультигруппа |
limit |
int | 0 |
Максимальное количество файлов. 0 — без ограничения |
offset |
int | 0 |
Смещение выборки (для пагинации) |
sortby |
string | position |
Поле сортировки: position, name, size, createdon, type |
sortdir |
string | ASC |
Направление сортировки: ASC или DESC |
showInactive |
int | 0 |
Показывать деактивированные файлы. 1 — показывать |
where |
JSON | — | Дополнительные условия xPDO-запроса в формате JSON. Например: {"type":"pdf"} |
tplOuter |
string | tpl.Gallery3x.Files.outer |
Чанк-обёртка всего списка |
tplItem |
string | tpl.Gallery3x.Files.item |
Чанк одного файла (используется при стандартном синтаксисе MODX) |
fenom |
int | 0 |
Использовать Fenom для рендеринга. Требует pdoTools. При 1 весь массив передаётся в tplOuter |
return |
string | — | Вернуть данные вместо HTML: data — PHP-массив, json — JSON-строка, ids — массив ID |
toPlaceholder |
string | — | Сохранить результат в указанный плейсхолдер вместо вывода на страницу |
debug |
int | 0 |
Режим отладки. При 1 выводит параметры запроса и данные найденных файлов |
Доступные поля в шаблонах
Каждый элемент содержит следующие поля:
| Поле | Описание |
|---|---|
id |
ID записи в базе данных |
resource_id |
ID ресурса MODX |
file |
Имя файла |
path |
Относительный путь к папке файла |
url |
Полный URL файла через медиасорс |
name |
Заголовок файла (заданный вручную) |
description |
Описание файла |
type |
MIME-тип файла |
ext |
Расширение файла в нижнем регистре (например, pdf, zip) |
size |
Размер файла в байтах |
size_formatted |
Размер файла в читаемом виде: 1.2 MB, 340 KB, 512 B |
group |
Группы через разделитель || (внутренний формат хранения) |
groups_list |
Группы через запятую (удобно для вывода в шаблоне) |
active |
Активность: 1 — активен, 0 — скрыт |
position |
Порядковый номер сортировки |
createdon |
Дата загрузки (Unix timestamp) |
В tplOuter дополнительно передаются:
| Поле | Описание |
|---|---|
total |
Общее количество найденных файлов |
first |
Массив данных первого файла (для быстрого доступа) |
files |
Весь массив файлов (только при Fenom) |
items |
Готовый HTML из всех tplItem (только при стандартном синтаксисе) |
Примеры вызова
Минимальный (текущий ресурс, стандартный синтаксис):
[[!Gallery3xFiles]]
С Fenom:
[[!Gallery3xFiles?
&tplOuter=`tpl.Gallery3x.Files.outer.fenom`
&fenom=`1`
]]
Фильтр по группе, ограничение количества:
[[!Gallery3xFiles?
&group=`документы`
&limit=`10`
&sortby=`name`
&sortdir=`ASC`
]]
Файлы нескольких ресурсов:
[[!Gallery3xFiles?
&resources=`5,10,15`
&fenom=`1`
&tplOuter=`tpl.Gallery3x.Files.outer.fenom`
]]
Получить JSON (для JavaScript или Fenom-обработки):
[[!Gallery3xFiles?
&return=`json`
]]
Сохранить в плейсхолдер:
[[!Gallery3xFiles?
&toPlaceholder=`myFiles`
]]
Фильтрация через where (только PDF):
[[!Gallery3xFiles?
&where=`{"type":"application/pdf"}`
]]