Skip to main content

Gallery3x

Компонент Gallery3x поставляется с основным сниппетом [[!Gallery3x]], который отвечает за вывод изображений на страницах сайта. Сниппет разработан с упором на гибкость и производительность, позволяя создавать галереи любой сложности.

Ключевая особенность

Сниппет не создает превью "на лету". Он работает с уже готовыми, заранее сгенерированными изображениями, которые были созданы в админ-панели при загрузке файлов. Это обеспечивает максимальную скорость загрузки страниц для посетителей вашего сайта.


Сниппет [[!Gallery3x]]

Основная задача сниппета — получить все активные изображения для указанного ресурса, отсортировать их и передать данные в чанки для оформления.

Документация с добавленным новым параметром.

Параметр По умолчанию Описание
&resource ID текущего ресурса ID ресурса, из которого нужно вывести изображения. Используется, если &parents и &resources не заданы.
&parents null Список ID родительских ресурсов через запятую. Выбирает картинки из этих ресурсов и всех их дочерних. 0 — выборка со всего сайта.
&resources null Список ID ресурсов через запятую. ID с минусом (-) исключает ресурс. Имеет приоритет над &parents, если указаны положительные ID.
&tplOuter ... Имя чанка-обертки для сложных галерей (например, каруселей).
&tplThumb ... Имя чанка для элемента в ленте превью (используется вместе с tplOuter, игнорируется в режиме Fenom).
&fenom 0 Если установить в 1 и на сайте установлен pdoTools, сниппет будет работать в режиме Fenom. В этом режиме он не обрабатывает чанк &tplThumb, а передает в чанк &tplOuter сырой массив со всеми данными {$files}, который вы можете обработать в цикле {foreach}.
&limit 0 Ограничение на количество выводимых изображений. 0 — без ограничений.
&offset
Пропуск результатов с начала выборки
&sortby position Поле для сортировки изображений. Можно сортировать и по дополнительным полям, например extra_num или extra_date.
&sortdir ASC Направление сортировки (ASC или DESC).
&showInactive 0 Если установить в 1, будут выводиться также и выключенные в админке изображения.
&where '' JSON-строка с дополнительными условиями выборки. Можно фильтровать и по доп-полям, например {"extra_num:>":2000}.
&debug 0 Если установить в 1, вместо галереи на странице будет выведен массив со всеми данными, которые сниппет подготовил.
&group
Фильтр по группе
&return
Определяет формат возвращаемых данных. (data, json, ids)
&toPlaceholder
Сохраняет данные в плейсхолдер вместо вывода. Сниппет возвращает пустую строку.

Доступные плейсхолдеры

Сниппет передает в чанк все поля из таблицы компонента, а также автоматически генерирует URL для всех существующих превью.

  • [[+id]] - ID записи

  • [[+name]] - Название (title)

  • [[+description]] - Описание

  • [[+alt]] - Альтернативный текст

  • [[+file]] - Имя файла (например, my-photo.jpg)

  • [[+createdon]] - Дата загрузки

  • [[+size]] - Размер файла в байтах

  • [[+original_url]] - URL к оригинальному изображению

  • [[+small_url]] - URL к превью 'small'

  • [[+medium_url]] - URL к превью 'medium'

  • [[+любое_имя_превью_url]] - Если вы создадите превью с именем big, здесь будет доступен плейсхолдер [[+big_url]].

  • [[+group]] - Группы изображения (несколько — через ||)

  • [[+special]] - Признак "особенный" (1/0)

  • [[+extra_text]] - Дополнительное текстовое поле

  • [[+extra_text2]] - Второе дополнительное текстовое поле

  • [[+extra_num]] - Дополнительное числовое поле (удобно для сортировки/фильтра)

  • [[+extra_date]] - Дополнительное поле даты (формат ГГГГ-ММ-ДД 00:00:00)

Дополнительные поля

Начиная с версии 3.2.1 у каждого изображения есть универсальные поля для нестандартных задач, которые заполняются в окне редактирования (вкладка «Дополнительно»): extra_text, extra_text2, extra_num, extra_date. Они доступны в чанках как обычные плейсхолдеры. Названия этих полей в админке можно переопределить в системных настройках компонента (область «Доп. поля: изображения»).

Поле даты хранится в формате datetime, поэтому при необходимости форматируйте его выводным модификатором:

[[+extra_date:strtotime:date=`%d.%m.%Y`]]

Те же поля доступны и в сниппетах Gallery3xVideos, Gallery3xFiles, Gallery3xEmbeds и Gallery3xMixed — они выводятся автоматически.

сниппет Gallery3x поддерживает параметры &return и &toPlaceholder, которые позволяют получать данные галереи в виде массива или JSON вместо готового HTML. Это особенно полезно при работе с Fenom-циклами, PdoPage с ajax-загрузкой, и для создания кастомной разметки.