Плейсхолдеры изображений

Функция "Плейсхолдеры изображений" — это мощный инструмент, который позволяет выводить изображения из галереи напрямую в контенте или шаблоне ресурса, не вызывая сниппет.

Специальный плагин один раз подготавливает все данные и делает их доступными в виде простых плейсхолдеров, таких как [[+g3x.0]] или [[+g3x.1.url]].

Как это работает

При загрузке страницы на сайте плагин, работающий на событии OnLoadWebDocument, выполняет следующие действия:

  1. Проверяет, включена ли эта функция в системных настройках.

  2. Если да, он находит все активные изображения для текущего ресурса, сортируя их по полю position.

  3. Для каждого найденного изображения создается набор плейсхолдеров, которые MODX может использовать при обработке страницы.

Системные настройки

Для управления этой функцией используются четыре системные настройки в пространстве имен gallery3x.

1. Включить плейсхолдеры на сайте

2. Чанк для плейсхолдеров

3. Включить для шаблонов

4. Размеры превью для плейсхолдеров


Примеры использования

Предположим, вы загрузили в галерею 3 картинки.

1. Простой вывод

Вы можете вставить эти плейсхолдеры прямо в контент ресурса или в его шаблон:

2. Вывод с форматированием (через чанк)

Это основной способ использования.

  1. Создайте чанк, например, tpl.Gallery3x.placeholderItem со следующим кодом:

    HTML
    <a href="[[+url]]" class="image-link">
        <img src="[[+medium]]" alt="[[+alt]]" title="[[+name]]">
    </a>
    
  2. В системной настройке gallery3x.placeholders_tpl укажите имя этого чанка: tpl.Gallery3x.placeholderItem.

  3. Теперь вы можете вставлять в контент просто [[+g3x.0]], [[+g3x.1]] и т.д., и они будут автоматически обернуты в HTML из вашего чанка.

3. Продвинутое использование (с Fenom)

Если на сайте используется Fenom, вы можете легко перебрать все изображения в цикле прямо в шаблоне:

{if $_modx->resource.g3x.0}
    <div class="product-gallery">
        <div class="main-image">
            <img src="{$_modx->resource['g3x.0.medium']}" alt="{$_modx->resource['g3x.0.alt']}">
        </div>
        <div class="thumbnails">
            {for $i = 0 to 10}
                {if $_modx->resource["g3x.{$i}.small"]}
                    <img src="{$_modx->resource["g3x.{$i}.small"]}" alt="">
                {/if}
            {/for}
        </div>
    </div>
{/if}

Revision #3
Created 24 July 2025 11:56:36 by Admin
Updated 24 July 2025 12:24:36 by Admin