Как получить изображение обложки галереи в modx revolution?

Как получить изображение обложки галереи в modx revolution?

В настоящее время я называю галерею по ID и ограничиваю ее одним изображением, однако это не гарантирует, что изображение будет изображением обложки.

это то, чем я сейчас занимаюсь.

[[!Gallery? &album=`[[!+tv.vehiclegallery]]` &toPlaceholder=`gallery` &thumbTpl=`homepageVehicleThumbTpl` &limit=`1`]]

[[+gallery]]

1 ответ

Ответ намного проще! Я смотрел на это часами и не мог понять, а потом меня осенило. Обложка каждого альбома всегда называется "cover.jpg". И он будет сохранен в папке с активами с соответствующим идентификатором альбома.

Аннотация пути:

активы / галерея /[идентификатор-альбома]/cover.jpg

Например:

активы / галерея /1/cover.jpg

Итак, если у вас есть идентификатор альбома, вы можете получить обложку.

Получение идентификатора альбома

Если вы хотите, чтобы идентификатор альбома был одним из способов:

  1. Создайте переменную шаблона с именем gallery_album с типом ввода galleryalbumlist.
  2. Сделайте его доступным для вашего предпочтительного шаблона.
  3. Откройте или создайте ресурс с этим шаблоном. Переменная шаблона будет на вкладке переменных шаблона в виде раскрывающегося списка, содержащего все ранее созданные альбомы.
  4. Выберите альбом из раскрывающегося списка
  5. когда вы знаете, что вызовите [[+gallery_album]] в шаблоне, он выведет идентификатор альбома

Пример кода:

Ссылка на дополнительную галерею modx:

https://docs.modx.com/current/en/extras/gallery/gallery/index

Я бы сделал это во фрагменте:

    <?php

    //getgalleryAlbumCover

    $output = '';

    $sql = "select * from modx_gallery_albums mga where mga.id = $id";

    $album = $modx->query($sql);

    if (!is_object($album)) {return;}

        $data = $album->fetch(PDO::FETCH_ASSOC);

        // just in case ;)
        $modx->toPlaceholders($data);

        $output = $data['cover_filename'];

    return $output;
Другие вопросы по тегам