dambar, уже есть все в коробке… Выберите пресеты для обложек
Задать обложку в настройках категории
Потом немного магии в templates\ваш_шаблон_или_modern\controllers\content\category_view.tpl.php или такой же, но для типа контента с системным именем shop templates\ваш_шаблон_или_modern\controllers\content\category_view_shop.tpl.php
У меня, например, такой код вывода категорий
<?php if ($subcats) {
?>
<div class="cats-shopout">
<div class="cats-shop row no-gutters mb-n3 mb-md-n4">
<?php
$i = 1;
$ctype_name = $ctype['name'];
//пресет обложки
$preset = 'cat_big';
foreach ($subcats as $item) {
if(!empty($item['cover'])){ $covers = cmsModel::yamlToArray($item['cover']);
$item['img_src'] = html_image_src($covers, $preset, true);
}
?>
<div class="col-6
<?php if ((count($subcats) !== 4) && ($i == 1 || $i == 6)) { ?> col-md-6
<?php } else { ?> col-md-3
<?php } ?>">
<a href="
<?php echo href_to
($ctype_name, $item['slug']); ?>" class="cats-shop__item"
<?php if (!empty($item['img_src'])) { ?> style="background-image: url(
<?php echo $item['img_src']; ?>)"
<?php } ?>>
<span><?php echo $item['title']; ?></span>
</a>
</div>
<?php
$i++;
}
?>
</div>
</div>
<?php } ?>
И получаем так