Картинка в списке элементов коллекции Collection
Сегодня я оставлю заметку о том, как вывести изображение для каждой записи
Я применял 2 способа.
Первый — это когда изображение у нас хранится в TV-параметре. Например, у нас есть новость и картинка для нее хранится в отдельном TV.
Второй — когда нужно вывести первое изображении из галереи ms2Gallery. Например, у нас имеется раздел Галерея или Портфолио.
В первом случае все просто.
Добавляем столбец таким образом
где
preview — TV параметр содержащий изображение
render_preview — сниппет со следующим содержимым:
Когда в список Collection нужно вывести первое изображение из ms2Gallery, то я поступаю так:
Добавляю в Виды коллекций столбец из существующего поля.
На изображении это description. Это не важно, главное чтобы он не был задействован.
В поле «Сниппет-рендер» указываем «maket_preview».
Содержимое данного сниппета ниже:
medium — название одной из заготовок в Источниках файлов
Я применял 2 способа.
Первый — это когда изображение у нас хранится в TV-параметре. Например, у нас есть новость и картинка для нее хранится в отдельном TV.
Второй — когда нужно вывести первое изображении из галереи ms2Gallery. Например, у нас имеется раздел Галерея или Портфолио.
В первом случае все просто.
Добавляем столбец таким образом
где
preview — TV параметр содержащий изображение
render_preview — сниппет со следующим содержимым:
<?php
$img = $scriptProperties['value'];
if (empty($img)) {
return "";
}
$img = str_replace('//', '/', '/'.$img);
return '<img style="width: 100%; max-height: 100px;" src="'.$img.'">';
Когда в список Collection нужно вывести первое изображение из ms2Gallery, то я поступаю так:
Добавляю в Виды коллекций столбец из существующего поля.
На изображении это description. Это не важно, главное чтобы он не был задействован.
В поле «Сниппет-рендер» указываем «maket_preview».
Содержимое данного сниппета ниже:
<?php
$img = $modx->runSnippet('ms2Gallery', [
'tpl'=>'tpl.collection.image',
'resources'=>$scriptProperties['row']['id'],
'limit'=>'1',
]);
return $img;
чанк «tpl.collection.image» имеет следующее содержимое{if $files?}
{foreach $files as $file}
<img src="{$file['medium']}" style="width: 100%;">
{/foreach}
{/if}
где, medium — название одной из заготовок в Источниках файлов
1 комментарий