# Gallery3xEmbeds

Компонент `Gallery3x` начиная с версии **3.2.1** поставляется со сниппетом `[[!Gallery3xEmbeds]]`, который выводит на страницах сайта **встраиваемые объекты (embed)** — карты, виджеты, плееры и любой iframe-контент, добавленный во вкладке **«Embed G3x»** ресурса.

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

Каждый embed добавляется в админке в одном из двух режимов:

- **Ссылка** — вы вставляете ссылку (например, на Яндекс.Карты или Google Карты), компонент распознаёт её и **сам строит безопасный `<iframe>`**.
- **Код вставки** — вы вставляете готовый HTML-код встраивания (кнопка «Поделиться → Встроить» на сайте-источнике), он выводится как есть.

Сниппет отдаёт в чанк **уже готовый HTML** embed в плейсхолдере `[[+embed_html]]` с адаптивной обёрткой (ширина 100%, высота из поля «Высота», по умолчанию 400px).

---

## Сниппет `[[!Gallery3xEmbeds]]`

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%9F%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8" style="width: 100%;"><thead><tr><td style="width: 16%;">Параметр</td><td style="width: 24%;">По умолчанию</td><td style="width: 60%;">Описание</td></tr></thead><tbody><tr><td>**&amp;resource**</td><td>ID текущего ресурса</td><td>ID ресурса, из которого выводить embed. Используется, если `&parents` и `&resources` не заданы.</td></tr><tr><td>**&amp;parents**</td><td>`null`</td><td>Список ID родительских ресурсов через запятую. Выбирает embed из них и всех дочерних. `0` — со всего сайта.</td></tr><tr><td>**&amp;resources**</td><td>`null`</td><td>Список ID ресурсов через запятую. ID с минусом (-) исключает ресурс. Имеет приоритет над `&parents`.</td></tr><tr><td>**&amp;tplOuter**</td><td>`tpl.Gallery3x.Embed.outer`</td><td>Чанк-обёртка всего списка.</td></tr><tr><td>**&amp;tplItem**</td><td>`tpl.Gallery3x.Embed.item`</td><td>Чанк одного элемента (**игнорируется в режиме Fenom**).</td></tr><tr><td>**&amp;fenom**</td><td>`0`</td><td>Если `1` и установлен `pdoTools` — режим Fenom. Чанк `&tplItem` не используется, а в `&tplOuter` передаётся массив `{$embeds}` для обработки в `{foreach}`.</td></tr><tr><td>**&amp;group**</td><td>`''`</td><td>Фильтр по группе (можно несколько через запятую).</td></tr><tr><td>**&amp;limit**</td><td>`0`</td><td>Ограничение количества. `0` — без ограничений.</td></tr><tr><td>**&amp;offset**</td><td>`0`</td><td>Сдвиг выборки (для постраничного вывода).</td></tr><tr><td>**&amp;sortby**</td><td>`position`</td><td>Поле сортировки.</td></tr><tr><td>**&amp;sortdir**</td><td>`ASC`</td><td>Направление сортировки (ASC или DESC).</td></tr><tr><td>**&amp;showInactive**</td><td>`0`</td><td>Если `1` — выводятся и выключенные в админке embed.</td></tr><tr><td>**&amp;where**</td><td>`''`</td><td>JSON-строка с дополнительными условиями выборки.</td></tr><tr><td>**&amp;debug**</td><td>`0`</td><td>Если `1` — вместо вывода показывается массив подготовленных данных.</td></tr></tbody></table>

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

Сниппет передаёт в чанк **все поля** записи embed. Главный — `[[+embed_html]]` (готовый к выводу HTML).

- **`[[+embed_html]]`** — **готовый HTML** embed с адаптивной обёрткой (это и нужно выводить).
- `[[+id]]` — ID записи.
- `[[+title]]` — заголовок.
- `[[+description]]` — описание.
- `[[+mode]]` — режим: `url` или `code`.
- `[[+url]]` — исходная ссылка (режим «Ссылка»).
- `[[+code]]` — код вставки (режим «Код вставки»).
- `[[+provider]]` — провайдер (`yandex_map`, `google_map`).
- `[[+embed_id]]` — итоговый `src` для iframe (режим «Ссылка»).
- `[[+height]]` — высота в px (пусто = 400).
- `[[+thumbnail_url]]` — URL превью (если задано).
- `[[+group]]` — группы (через `||`).
- `[[+position]]`, `[[+active]]`, `[[+special]]` — позиция, активность, «особенный».
- `[[+extra_text]]`, `[[+extra_text2]]`, `[[+extra_num]]`, `[[+extra_date]]` — дополнительные поля.

### Примеры

```
[[!Gallery3xEmbeds]]
```

Вывести все embed текущего ресурса.

```
[[!Gallery3xEmbeds?
  &group=`maps`]]
```

Только embed из группы `maps`.

```
[[!Gallery3xEmbeds? &resource=`15`
  &limit=`3`]]
```

Три embed с ресурса №15.

```
[[!Gallery3xEmbeds? &fenom=`1` &tplOuter=`
  tpl.Gallery3x.Embed.outer.fenom`]]
```

Режим Fenom — обработка массива `{$embeds}` в цикле внутри чанка-обёртки.

```
[[!Gallery3xEmbeds? &debug=`1`]]
```

Отладка — показывает все подготовленные данные.