This commit is contained in:
2025-10-02 16:08:01 +02:00
12 changed files with 392 additions and 199 deletions

View File

@@ -1637,6 +1637,9 @@ class WidgetCallToAction extends WidgetBase
<?php } ?>
<?php if ($print_content) { ?>
<div class="elementor-cta-content">
<?php if (!empty($settings['link']['url'])) : ?>
<a class="elementor-cta-absolute-link" href="<?php echo $settings['link']['url']; ?>"></a>
<?php endif; ?>
<?php if ('image' === $settings['graphic_element'] && !empty($settings['graphic_image']['url'])) { ?>
<div <?php $this->printRenderAttributeString('graphic_element'); ?>>
<?php echo GroupControlImageSize::getAttachmentImageHtml($settings, 'graphic_image'); ?>

View File

@@ -18,11 +18,23 @@
*}
<section id="js-active-search-filters" class="{if $activeFilters|count}active_filters{else}hide{/if}">
{block name='active_filters_title'}
<p class="h6 {if $activeFilters|count}active-filter-title{else}hidden-xs-up{/if}">{l s='Active filters' d='Shop.Theme.Global'}</p>
<p class="h6 {if $activeFilters|count}active-filter-title{else}hidden-xs-up{/if}">
{l s='Active filters' d='Shop.Theme.Global'}</p>
{/block}
{if $activeFilters|count}
<ul>
<li class="filter-block-all">
{block name='facets_clearall_button'}
{if $activeFilters|count}
<button data-search-url="{$clear_all_link}" class="btn btn-tertiary js-search-filters-clear-all filter-block">
{l s='Clear all' d='Shop.Theme.Actions'}
<i class="material-icons">&#xE14C;</i>
</button>
{/if}
{/block}
</li>
{foreach from=$activeFilters item="filter"}
{block name='active_filters_item'}
<li class="filter-block">
@@ -34,4 +46,4 @@
{/foreach}
</ul>
{/if}
</section>
</section>

View File

@@ -20,17 +20,10 @@
<div id="search_filters">
<div class="head">
{block name='facets_title'}
<p class="text-uppercase h6 hidden-sm-down search-toggle">{l s='Filter By' d='Shop.Theme.Actions'} <img src="/themes/classic/assets/img/chevron-up.svg"></p>
{/block}
{block name='facets_clearall_button'}
{if $activeFilters|count}
<div id="_desktop_search_filters_clear_all" class="hidden-sm-down clear-all-wrapper">
<button data-search-url="{$clear_all_link}" class="btn btn-tertiary js-search-filters-clear-all">
<i class="material-icons">&#xE14C;</i>
{l s='Clear all' d='Shop.Theme.Actions'}
</button>
</div>
{/if}
<p class="text-uppercase h6 hidden-sm-down search-toggle">
{l s='Filter By' d='Shop.Theme.Actions'}
{* <img src="/themes/classic/assets/img/chevron-up.svg"> *}
</p>
{/block}
</div>
<div class="content">
@@ -44,7 +37,8 @@
{if $filter.active}{assign var=_collapse value=false}{/if}
{/foreach}
<div class="title hidden-md-up" data-target="#facet_{$_expand_id}" data-toggle="collapse"{if !$_collapse} aria-expanded="true"{/if}>
<div class="title hidden-md-up" data-target="#facet_{$_expand_id}" data-toggle="collapse" {if !$_collapse}
aria-expanded="true" {/if}>
<p class="h6 facet-title">{$facet.label}</p>
<span class="navbar-toggler collapse-icons">
<i class="material-icons add">&#xE313;</i>
@@ -55,49 +49,85 @@
{if in_array($facet.widgetType, ['radio', 'checkbox'])}
{block name='facet_item_other'}
<ul id="facet_{$_expand_id}" class="collapse{if !$_collapse} in{/if}">
{assign var="i" value=0}
{assign var="total" value=$facet.filters|@count}
{foreach from=$facet.filters key=filter_key item="filter"}
{if !$filter.displayed}
{continue}
{/if}
{assign var="i" value=$i+1}
<li>
<label class="facet-label{if $filter.active} active {/if}" for="facet_input_{$_expand_id}_{$filter_key}">
{if $facet.multipleSelectionAllowed}
<span class="custom-checkbox">
<input
id="facet_input_{$_expand_id}_{$filter_key}"
data-search-url="{$filter.nextEncodedFacetsURL}"
type="checkbox"
{if $filter.active }checked{/if}
>
</span>
{else}
<span class="custom-radio">
<input
id="facet_input_{$_expand_id}_{$filter_key}"
data-search-url="{$filter.nextEncodedFacetsURL}"
type="radio"
name="filter {$facet.label}"
{if $filter.active }checked{/if}
>
<span {if !$js_enabled} class="ps-shown-by-js" {/if}></span>
</span>
{if $i <= 5}
<li>
<label class="facet-label{if $filter.active} active {/if}" for="facet_input_{$_expand_id}_{$filter_key}">
{if $facet.multipleSelectionAllowed}
<span class="custom-checkbox">
<input id="facet_input_{$_expand_id}_{$filter_key}" data-search-url="{$filter.nextEncodedFacetsURL}"
type="checkbox" {if $filter.active }checked{/if}>
</span>
{else}
<span class="custom-radio">
<input id="facet_input_{$_expand_id}_{$filter_key}" data-search-url="{$filter.nextEncodedFacetsURL}"
type="radio" name="filter {$facet.label}" {if $filter.active }checked{/if}>
<span {if !$js_enabled} class="ps-shown-by-js" {/if}></span>
</span>
{/if}
<a href="{$filter.nextEncodedFacetsURL}" class="_gray-darker search-link js-search-link" rel="nofollow">
{$filter.label}
{if $filter.magnitude and $show_quantities}
<span class="magnitude">({$filter.magnitude})</span>
{/if}
</a>
</label>
</li>
{/if}
{if $i == 6}
<li class="facet-items-hidden" style="display:none;">
<ul>
{/if}
<a
href="{$filter.nextEncodedFacetsURL}"
class="_gray-darker search-link js-search-link"
rel="nofollow"
>
{$filter.label}
{if $filter.magnitude and $show_quantities}
<span class="magnitude">({$filter.magnitude})</span>
{/if}
{if $i > 5}
<li>
<label class="facet-label{if $filter.active} active {/if}" for="facet_input_{$_expand_id}_{$filter_key}">
{if $facet.multipleSelectionAllowed}
<span class="custom-checkbox">
<input id="facet_input_{$_expand_id}_{$filter_key}" data-search-url="{$filter.nextEncodedFacetsURL}"
type="checkbox" {if $filter.active }checked{/if}>
</span>
{else}
<span class="custom-radio">
<input id="facet_input_{$_expand_id}_{$filter_key}" data-search-url="{$filter.nextEncodedFacetsURL}"
type="radio" name="filter {$facet.label}" {if $filter.active }checked{/if}>
<span {if !$js_enabled} class="ps-shown-by-js" {/if}></span>
</span>
{/if}
<a href="{$filter.nextEncodedFacetsURL}" class="_gray-darker search-link js-search-link" rel="nofollow">
{$filter.label}
{if $filter.magnitude and $show_quantities}
<span class="magnitude">({$filter.magnitude})</span>
{/if}
</a>
</label>
</li>
{/if}
{if $i == $total && $total > 5}
</ul>
</li>
<li class="show-more">
<a href="#" class="toggle-facets">
<span class="show-more-text">Więcej</span>
<span class="show-less-text" style="display: none;">Mniej</span>
</a>
</label>
</li>
</li>
{/if}
{/foreach}
</ul>
{/block}
{elseif $facet.widgetType == 'dropdown'}
@@ -126,11 +156,7 @@
<div class="dropdown-menu">
{foreach from=$facet.filters item="filter"}
{if !$filter.active}
<a
rel="nofollow"
href="{$filter.nextEncodedFacetsURL}"
class="select-list js-search-link"
>
<a rel="nofollow" href="{$filter.nextEncodedFacetsURL}" class="select-list js-search-link">
{$filter.label}
{if $filter.magnitude and $show_quantities}
({$filter.magnitude})
@@ -147,17 +173,12 @@
{elseif $facet.widgetType == 'slider'}
{block name='facet_item_slider'}
{foreach from=$facet.filters item="filter"}
<ul id="facet_{$_expand_id}"
class="faceted-slider collapse{if !$_collapse} in{/if}"
data-slider-min="{$facet.properties.min}"
data-slider-max="{$facet.properties.max}"
data-slider-id="{$_expand_id}"
data-slider-values="{$filter.value|@json_encode}"
data-slider-unit="{$facet.properties.unit}"
data-slider-label="{$facet.label}"
<ul id="facet_{$_expand_id}" class="faceted-slider collapse{if !$_collapse} in{/if}"
data-slider-min="{$facet.properties.min}" data-slider-max="{$facet.properties.max}"
data-slider-id="{$_expand_id}" data-slider-values="{$filter.value|@json_encode}"
data-slider-unit="{$facet.properties.unit}" data-slider-label="{$facet.label}"
data-slider-specifications="{$facet.properties.specifications|@json_encode}"
data-slider-encoded-url="{$filter.nextEncodedFacetsURL}"
>
data-slider-encoded-url="{$filter.nextEncodedFacetsURL}">
<li>
<p id="facet_label_{$_expand_id}">
{$filter.label}
@@ -176,4 +197,4 @@
{else}
<div id="search_filters" style="display:none;">
</div>
{/if}
{/if}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -2536,22 +2536,6 @@ body {
}
}
}
#search_filters {
.h6 {
color: $cBlack;
font-size: 20px;
font-weight: 400;
}
.facet {
.h6 {
color: $cBlack;
font-size: 16px;
font-weight: 400;
}
}
}
}
}
@@ -3735,11 +3719,14 @@ body#authentication {
border-top: 1px solid #110e0c1a;
border-bottom: 1px solid #110e0c1a;
border-radius: 0 !important;
padding-left: 0;
padding-right: 0;
.head {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.h6 {
font-size: 16px;
@@ -3747,7 +3734,7 @@ body#authentication {
font-family: 'Inter';
text-transform: uppercase;
color: #462d26;
cursor: pointer;
// cursor: pointer;
margin-bottom: 0;
display: flex;
@@ -3761,29 +3748,38 @@ body#authentication {
}
}
&.active {
background: #fff;
border: 0;
border-radius: 10px !important;
// &.active {
// background: #fff;
// border: 0;
// border-radius: 10px !important;
.content {
display: grid;
}
}
// .content {
// display: grid;
// }
// }
.content {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
// display: grid;
// grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 20px;
background: #fff;
padding: 25px;
display: none;
// display: none;
section.facet {
&:first-child {
padding-top: 0;
}
&:not(:first-child) {
padding-top: 1.625rem;
}
}
.h6 {
font-weight: 700;
font-size: 16px;
font-family: 'Inter';
margin-bottom: 25px;
margin-bottom: 15px;
}
.custom-checkbox {
@@ -3801,6 +3797,17 @@ body#authentication {
margin-top: 0;
}
}
.faceted-slider {
> li {
> p {
color: #462d26;
font-family: 'Inter', sans-serif;
font-size: 14px;
font-weight: 700;
}
}
}
}
}
@@ -4282,3 +4289,78 @@ form {
}
}
}
.elementor-cta-absolute-link {
position: absolute;
inset: 0;
z-index: 1;
}
.filter-block-all {
display: inline-block;
margin-right: 0.625rem;
margin-bottom: 0.625rem;
button {
margin: 0 !important;
.material-icons {
margin: 0;
}
}
}
.scroll-brn-box {
position: fixed;
bottom: 40px;
right: 40px;
z-index: 100000000000;
opacity: 0;
visibility: hidden;
transition: all 250ms ease-in-out;
&.active {
opacity: 1;
visibility: visible;
}
a {
width: 50px;
height: 50px;
background: #e79332;
border-radius: 100%;
display: flex;
align-items: center;
justify-content: center;
line-height: 0;
svg {
width: 16px;
height: 16px;
}
}
@media (max-width: 767px) {
left: 50%;
right: auto;
transform: translateX(-50%);
}
}
.cart-voucher {
.promo-name {
padding: 10px;
.cart-summary-line {
display: flex;
flex-direction: row;
justify-content: space-between;
> .label {
text-align: left;
}
.float-xs-right {
min-width: fit-content;
}
}
}
}

View File

@@ -46,27 +46,32 @@ jQuery(document).ready(function ($) {
})
$(document).on('click', '.control-label-nav', function () {
$('.control-label-nav').not(this).removeClass('active');
$('.control-label-nav').not(this).parent().parent().removeClass('active');
$('.control-label-nav').not(this).siblings('.form-control-select-custom').slideUp();
$('.control-label-nav').not(this).removeClass('active')
$('.control-label-nav').not(this).parent().parent().removeClass('active')
$('.control-label-nav')
.not(this)
.siblings('.form-control-select-custom')
.slideUp()
$(this).toggleClass('active')
$(this).parent().parent().toggleClass('active')
// $(this).siblings('.form-control-select-custom').slideToggle()
$(this).siblings('.form-control-select-custom').slideToggle(function () {
const $dropdown = $(this).find('.custom-dropdown');
const $items = $dropdown.find('li');
$(this)
.siblings('.form-control-select-custom')
.slideToggle(function () {
const $dropdown = $(this).find('.custom-dropdown')
const $items = $dropdown.find('li')
if ($items.length > 5) {
const itemHeight = $items.first().outerHeight(true);
const maxHeight = itemHeight * 5;
const gap = 16;
if ($items.length > 5) {
const itemHeight = $items.first().outerHeight(true)
const maxHeight = itemHeight * 5
const gap = 16
$dropdown.css({
'max-height': maxHeight + (gap * 4) + 'px'
});
}
});
$dropdown.css({
'max-height': maxHeight + gap * 4 + 'px',
})
}
})
})
})
@@ -138,31 +143,31 @@ jQuery(document).ready(function ($) {
}
})
document.addEventListener('click', (event) => {
const toggleButton = event.target.closest('.search-toggle')
// document.addEventListener('click', (event) => {
// const toggleButton = event.target.closest('.search-toggle')
if (toggleButton) {
const filtersContainer = document.querySelector('#search_filters')
const filtersContent = filtersContainer?.querySelector('.content')
// if (toggleButton) {
// const filtersContainer = document.querySelector('#search_filters')
// const filtersContent = filtersContainer?.querySelector('.content')
if (filtersContainer && filtersContent) {
// Pokaż/ukryj zawartość
const isContentVisible = filtersContent.style.display === 'grid'
filtersContent.style.display = isContentVisible ? 'none' : 'grid'
// if (filtersContainer && filtersContent) {
// // Pokaż/ukryj zawartość
// const isContentVisible = filtersContent.style.display === 'grid'
// filtersContent.style.display = isContentVisible ? 'none' : 'grid'
// Obróć obrazek w przycisku
const img = toggleButton.querySelector('img')
if (img && img.src.includes('chevron-up.svg')) {
img.style.transform = isContentVisible
? 'rotate(0deg)'
: 'rotate(180deg)'
}
// // Obróć obrazek w przycisku
// const img = toggleButton.querySelector('img')
// if (img && img.src.includes('chevron-up.svg')) {
// img.style.transform = isContentVisible
// ? 'rotate(0deg)'
// : 'rotate(180deg)'
// }
// Dodaj/usuń klasę active na kontenerze
filtersContainer.classList.toggle('active', !isContentVisible)
}
}
})
// // Dodaj/usuń klasę active na kontenerze
// filtersContainer.classList.toggle('active', !isContentVisible)
// }
// }
// })
document.addEventListener('DOMContentLoaded', function () {
function moveContent(retries = 20) {
@@ -202,11 +207,9 @@ jQuery(document).ready(function ($) {
// var offsetTop = $menu.offset().top
var offsetTop = $('header').height() - 20
// console.log('Offset top: ' + offsetTop + 'px',);
var maxHeight = windowHeight - offsetTop - 30
// console.log('Max height: ' + maxHeight + 'px',);
$menu.css('max-height', maxHeight + 'px')
}
@@ -237,3 +240,59 @@ jQuery(document).ready(function ($) {
}
)
})
jQuery(document).ready(function ($) {
$('body').on('click', 'section.facet .show-more', function (e) {
e.preventDefault()
let $currentFacet = $(this).closest('section.facet')
$('section.facet')
.not($currentFacet)
.each(function () {
$(this).find('.toggle-facets .show-more-text').show()
$(this).find('.toggle-facets .show-less-text').hide()
$(this).find('.facet-items-hidden').slideUp()
})
$(this).find('.toggle-facets .show-more-text').toggle()
$(this).find('.toggle-facets .show-less-text').toggle()
$currentFacet.find('.facet-items-hidden').slideToggle()
})
})
// jQuery(document).ready(function ($) {
// var $btnBox = $('.scroll-brn-box')
// $(window).on('scroll', function () {
// if ($(this).scrollTop() > $(window).height() / 2) {
// $btnBox.addClass('active')
// } else {
// $btnBox.removeClass('active')
// }
// })
// })
jQuery(document).ready(function ($) {
$('body').append(`
<div class="scroll-brn-box">
<a href="#header" class="scroll-top-btn">
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="12" viewBox="0 0 10 12" fill="none">
<path d="M5 12L5 2" stroke="#fff"></path>
<path d="M1 5C2.33333 4.91228 5 3.78947 5 -3.56644e-07" stroke="#fff"></path>
<path d="M9 5C7.66667 4.91228 5 3.78947 5 2.05257e-08" stroke="#fff"></path>
</svg>
</a>
</div>
`)
var $btnBox = $('.scroll-brn-box')
$(window).on('scroll', function () {
if ($(this).scrollTop() > $(window).height() / 2) {
$btnBox.addClass('active')
} else {
$btnBox.removeClass('active')
}
})
})

View File

@@ -23,7 +23,8 @@
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{capture assign="productClasses"}{if !empty($productClass)}{$productClass}{else}col-xs-12 col-sm-6 col-xl-4{/if}{/capture}
{* {capture assign="productClasses"}{if !empty($productClass)}{$productClass}{else}col-xs-12 col-sm-6 col-xl-4{/if}{/capture} *}
{capture assign="productClasses"}col-xs-12 col-sm-6 col-lg-4 col-xl-3{/capture}
<div class="products{if !empty($cssClass)} {$cssClass}{/if}">
{foreach from=$products item="product" key="position"}

View File

@@ -23,14 +23,16 @@
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
<div id="js-product-list-top" class="row products-selection">
<div class="col-md-6 hidden-sm-down total-products">
<div class="col-md-4 hidden-sm-down total-products">
{if $listing.pagination.total_items > 1}
<p>{l s='There are %product_count% products.' d='Shop.Theme.Catalog' sprintf=['%product_count%' => $listing.pagination.total_items]}</p>
<p>
{l s='There are %product_count% products.' d='Shop.Theme.Catalog' sprintf=['%product_count%' => $listing.pagination.total_items]}
</p>
{elseif $listing.pagination.total_items > 0}
<p>{l s='There is 1 product.' d='Shop.Theme.Catalog'}</p>
{/if}
</div>
<div class="col-md-6">
<div class="col-md-8">
<div class="row sort-by-row">
{block name='sort_by'}
@@ -53,4 +55,4 @@
'%total%' => $listing.pagination.total_items
]}
</div>
</div>
</div>

View File

@@ -35,4 +35,4 @@
<i class="material-icons">&#xE316;</i>
</a>
</div>
</div>
</div>

View File

@@ -25,25 +25,31 @@
<span class="hidden-sm-down sort-by">{l s='Sort by:' d='Shop.Theme.Global'}</span>
<div class="products-sort-order dropdown">
<button
class="btn-unstyle select-title"
rel="nofollow"
data-toggle="dropdown"
aria-label="{l s='Sort by selection' d='Shop.Theme.Global'}"
aria-haspopup="true"
aria-expanded="false">
<button class="btn-unstyle select-title" rel="nofollow" data-toggle="dropdown"
aria-label="{l s='Sort by selection' d='Shop.Theme.Global'}" aria-haspopup="true" aria-expanded="false">
{if $listing.sort_selected}{$listing.sort_selected}{else}{l s='Select' d='Shop.Theme.Actions'}{/if}
<i class="material-icons float-xs-right">&#xE5C5;</i>
</button>
<div class="dropdown-menu">
{foreach from=$listing.sort_orders item=sort_order}
<a
rel="nofollow"
href="{$sort_order.url}"
class="select-list {['current' => $sort_order.current, 'js-search-link' => true]|classnames}"
>
{$sort_order.label}
</a>
{if $sort_order.label == "Reference, A to Z"
|| $sort_order.label == "Reference, Z to A"
|| $sort_order.label == "Nazwa, A do Z"
|| $sort_order.label == "Nazwa, Z do A"}
{continue}
{/if}
{assign var="label" value=$sort_order.label}
{if $label == "Sprzedaż, od najwyższej do najniższej"}
{assign var="label" value="Popularność"}
{/if}
<a rel="nofollow" href="{$sort_order.url}"
class="select-list {['current' => $sort_order.current, 'js-search-link' => true]|classnames}">
{$label}
</a>
{/foreach}
</div>
</div>
</div>

View File

@@ -40,66 +40,73 @@
{include file='catalog/_partials/subcategories.tpl' subcategories=$subcategories}
{/if}
{/block}
{hook h="displayHeaderCategory"}
{* Start - Custom *}
{hook h="displayLeftColumn"}
{* End - Custom *}
<div class="row">
<div id="left-column" class="sidebar col-xs-12 col-sm-12 col-md-4 col-lg-3">
{* Start - Custom *}
{hook h="displayLeftColumn"}
{* End - Custom *}
</div>
<div id="content-wrapper" class="left-column col-xs-12 col-sm-12 col-md-8 col-lg-9">
<section id="products" class="t1">
{if $listing.products|count}
<section id="products" class="t1">
{if $listing.products|count}
{block name='product_list_top'}
{include file='catalog/_partials/products-top.tpl' listing=$listing}
{/block}
{block name='product_list_top'}
{include file='catalog/_partials/products-top.tpl' listing=$listing}
{/block}
{block name='product_list_active_filters'}
<div class="hidden-sm-down">
{$listing.rendered_active_filters nofilter}
</div>
{/block}
{block name='product_list_active_filters'}
<div class="hidden-sm-down">
{$listing.rendered_active_filters nofilter}
</div>
{/block}
{block name='product_list'}
{include file='catalog/_partials/products.tpl' listing=$listing productClass="col-xs-12 col-sm-6 col-lg-4 col-xl-3"}
{/block}
{block name='product_list'}
{include file='catalog/_partials/products.tpl' listing=$listing productClass="col-xs-12 col-sm-6 col-lg-4 col-xl-3"}
{/block}
{block name='product_list_bottom'}
{include file='catalog/_partials/products-bottom.tpl' listing=$listing}
{/block}
{block name='product_list_bottom'}
{include file='catalog/_partials/products-bottom.tpl' listing=$listing}
{/block}
{else}
<div id="js-product-list-top"></div>
{else}
<div id="js-product-list-top"></div>
<div id="js-product-list">
{capture assign="errorContent"}
<h4>{l s='No products available yet' d='Shop.Theme.Catalog'}</h4>
<p>{l s='Stay tuned! More products will be shown here as they are added.' d='Shop.Theme.Catalog'}</p>
{/capture}
<div id="js-product-list">
{capture assign="errorContent"}
<h4>{l s='No products available yet' d='Shop.Theme.Catalog'}</h4>
<p>{l s='Stay tuned! More products will be shown here as they are added.' d='Shop.Theme.Catalog'}</p>
{/capture}
{include file='errors/not-found.tpl' errorContent=$errorContent}
</div>
{include file='errors/not-found.tpl' errorContent=$errorContent}
</div>
<div id="js-product-list-bottom"></div>
{/if}
</section>
<div id="js-product-list-bottom"></div>
{/if}
</section>
</div>
</div>
{if $category.description}
<div id="js-product-list-header">
{if $listing.pagination.items_shown_from == 1}
<div class="block-category card card-block">
<h1 class="h1">{$category.name}</h1>
<div class="block-category-inner">
{if $category.description}
<div id="category-description" class="text-muted">{$category.description nofilter}</div>
{/if}
{if !empty($category.image.large.url)}
<div class="category-cover">
<img src="{$category.image.large.url}" alt="{if !empty($category.image.legend)}{$category.image.legend}{else}{$category.name}{/if}" loading="lazy" width="141" height="180">
</div>
{/if}
<div class="block-category card card-block">
<h1 class="h1">{$category.name}</h1>
<div class="block-category-inner">
{if $category.description}
<div id="category-description" class="text-muted">{$category.description nofilter}</div>
{/if}
{if !empty($category.image.large.url)}
<div class="category-cover">
<img src="{$category.image.large.url}"
alt="{if !empty($category.image.legend)}{$category.image.legend}{else}{$category.name}{/if}" loading="lazy"
width="141" height="180">
</div>
{/if}
</div>
</div>
{/if}
</div>
{/if}
@@ -108,4 +115,4 @@
{hook h="displayFooterCategory"}
</section>
{/block}
{/block}