pdoResources

Gallery3x1 мин чтенияСтраница 13 из 22
На этой странице 2

Список ресурсов (каталог, статьи) с первым фото галереи у каждого. Фото присоединяется в запросе pdoResources, адрес превью по ID даёт сниппет g3xGetImage.

[[!pdoResources?
    &parents=`5`
    &tpl=`ListRowTpl`
    &leftJoin=`{
        "Image": {
            "class": "Gallery3x\\Model\\Gallery3xFile",
            "on": "modResource.id = Image.resource_id AND Image.position = 0 AND Image.active = 1"
        }
    }`
    &select=`{
        "modResource": "modResource.id, modResource.pagetitle, modResource.introtext, modResource.uri",
        "Image": "Image.id AS image_id, Image.alt AS image_alt"
    }`
]]

Image.position = 0 — первое фото в порядке галереи. Если первое фото выключено, у ресурса не будет картинки — тогда уберите Image.active = 1 или выбирайте минимальную позицию подзапросом.

Чанк ListRowTpl

{set $img = $image_id ? ($image_id | g3xGetImage : 'small') : ''}
<div class="catalog-item">
    <a href="{$id | url}">
        <img src="{$img ?: '/assets/images/no-image.png'}" alt="{$image_alt ?: $pagetitle}">
    </a>
    <h3><a href="{$id | url}">{$pagetitle}</a></h3>
    <p>{$introtext}</p>
</div>

Сниппет g3xGetImage

ПараметрОписание
&inputID фото Gallery3x.
&optionsИмя размера из источника (small, medium, big …) или original. По умолчанию medium.

Вызов тегом: [[g3xGetImage? &input=`[[+image_id]]` &options=`small`]]. Пустой результат — фото нет или такого размера у него нет.