Как получить изображение обложки галереи в modx revolution?
Как получить изображение обложки галереи в modx revolution?
В настоящее время я называю галерею по ID и ограничиваю ее одним изображением, однако это не гарантирует, что изображение будет изображением обложки.
это то, чем я сейчас занимаюсь.
[[!Gallery? &album=`[[!+tv.vehiclegallery]]` &toPlaceholder=`gallery` &thumbTpl=`homepageVehicleThumbTpl` &limit=`1`]]
[[+gallery]]
1 ответ
Ответ намного проще! Я смотрел на это часами и не мог понять, а потом меня осенило. Обложка каждого альбома всегда называется "cover.jpg". И он будет сохранен в папке с активами с соответствующим идентификатором альбома.
Аннотация пути:
активы / галерея /[идентификатор-альбома]/cover.jpg
Например:
активы / галерея /1/cover.jpg
Итак, если у вас есть идентификатор альбома, вы можете получить обложку.
Получение идентификатора альбома
Если вы хотите, чтобы идентификатор альбома был одним из способов:
- Создайте переменную шаблона с именем gallery_album с типом ввода galleryalbumlist.
- Сделайте его доступным для вашего предпочтительного шаблона.
- Откройте или создайте ресурс с этим шаблоном. Переменная шаблона будет на вкладке переменных шаблона в виде раскрывающегося списка, содержащего все ранее созданные альбомы.
- Выберите альбом из раскрывающегося списка
- когда вы знаете, что вызовите [[+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;