Compare commits
27 Commits
1ccb71c8e0
...
feature/ex
| Author | SHA1 | Date | |
|---|---|---|---|
| 98ccf560c9 | |||
| e393572081 | |||
| e37cafd839 | |||
| 1bf0ea3450 | |||
| a128906dc0 | |||
| ddec414409 | |||
| 2f8a8bf527 | |||
| e4c471684f | |||
| d38338b360 | |||
| cb65915c7c | |||
| 10aabb24a9 | |||
| a8869adad6 | |||
| ff9b9a3570 | |||
| 47f985815a | |||
| 8c79477559 | |||
| 5c7750e15d | |||
| 523c7d573c | |||
| 6af020d81f | |||
| f2192d11db | |||
| 982dc10038 | |||
| 4d7880fcec | |||
| fd595a0e15 | |||
| 3e96574e0a | |||
| 48e776d80d | |||
| ea6ebb4df1 | |||
| efa88a508a | |||
| 27dfb4dc70 |
@ -1,3 +1,21 @@
|
||||
$grid-columns: 12;
|
||||
$grid-gutter-width: rem-calc(20px);
|
||||
$grid-row-columns: 6;
|
||||
// Made this more like the breakpoints used in Bootstrap 5
|
||||
$grid-breakpoints: (
|
||||
xs: 0,
|
||||
sm: 576px,
|
||||
md: 768px,
|
||||
lg: 992px,
|
||||
xl: 1200px,
|
||||
xxl: 1400px,
|
||||
);
|
||||
|
||||
$container-max-widths: (
|
||||
sm: 540px,
|
||||
md: 720px,
|
||||
lg: 960px,
|
||||
xl: 1140px,
|
||||
xxl: 1320px,
|
||||
);
|
||||
|
||||
$grid-columns: 12;
|
||||
$grid-gutter-width: rem-calc(20px);
|
||||
$grid-row-columns: 6;
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
@import "layout/index";
|
||||
@import "components/index";
|
||||
|
||||
@import "custom/custom";
|
||||
|
||||
@ -1,11 +1,22 @@
|
||||
// NOTE: All bootstrap overrides have been configured under themes/falcon/_dev/css/abstracts/variables/bootstrap
|
||||
/*
|
||||
This is the main custom SCSS file for the Falcon theme.
|
||||
|
||||
I am loosely following the 7 in 1 structure for better organization of the styles. Learn more here:
|
||||
https://medium.com/@diyorbekjuraev77/be-a-master-at-creating-the-7-1-sass-pattern-776fdfb5a3b1
|
||||
|
||||
⚠️NOTE: All bootstrap overrides have been configured under themes/falcon/_dev/css/abstracts/variables/bootstrap
|
||||
Look up all available Bootstrap variables here: https://rstudio.github.io/bslib/articles/bs5-variables/index.html
|
||||
|
||||
*/
|
||||
|
||||
//Abstracts: Things used throughout the site such as utility classes and generic overrides.
|
||||
//@import "abstracts/base";
|
||||
@import "abstracts/functions";
|
||||
@import "abstracts/mixins";
|
||||
//@import "abstracts/utilities";
|
||||
|
||||
// Components: parts of the theme itself that are not associated with a module.
|
||||
//@import "components/";
|
||||
//@import "components/buttons";
|
||||
@import "components/forms";
|
||||
|
||||
// Modules: Styling for specific modules.
|
||||
@ -18,5 +29,7 @@
|
||||
@import "layout/swiper";
|
||||
|
||||
// Pages
|
||||
//@import "pages/category";
|
||||
//@import "pages/checkout";
|
||||
//@import "pages/home";
|
||||
//@import "pages/listing";
|
||||
//@import "pages/product";
|
||||
|
||||
41
falcon/_dev/css/theme/custom/abstracts/_functions.scss
Normal file
41
falcon/_dev/css/theme/custom/abstracts/_functions.scss
Normal file
@ -0,0 +1,41 @@
|
||||
@use "sass:math";
|
||||
|
||||
// Font size utility classes generator
|
||||
// Generates utility classes like .fs-14, .fs-16, etc.
|
||||
@for $i from 8 through 72 {
|
||||
.fs-#{$i} {
|
||||
font-size: rem-calc($i * 1px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Font weight utility classes generator
|
||||
// Generates utility classes like .fw-100, .fw-200, etc.
|
||||
@for $i from 100 through 900 {
|
||||
@if $i % 100 == 0 {
|
||||
.fw-#{$i} {
|
||||
font-weight: #{$i} !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// gap size utility classes generator
|
||||
// Generates utility classes like .gap-4, .gap-col-4, .gap-row-4
|
||||
@for $i from 1 through 35 {
|
||||
.gap-#{$i} {
|
||||
gap: rem-calc($i * 1px) !important;
|
||||
}
|
||||
.gap-col-#{$i} {
|
||||
column-gap: rem-calc($i * 1px) !important;
|
||||
}
|
||||
.gap-row-#{$i} {
|
||||
row-gap: rem-calc($i * 1px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// hex to rgba function
|
||||
@function hex-to-rgba($hex, $alpha) {
|
||||
$r: red($hex);
|
||||
$g: green($hex);
|
||||
$b: blue($hex);
|
||||
@return rgba($r, $g, $b, $alpha);
|
||||
}
|
||||
73
falcon/_dev/css/theme/custom/abstracts/_mixins.scss
Normal file
73
falcon/_dev/css/theme/custom/abstracts/_mixins.scss
Normal file
@ -0,0 +1,73 @@
|
||||
// Bootstrap 5-style responsive mixins (more intuitive than Bootstrap 4)
|
||||
// Learn the difference here https://getbootstrap.com/docs/5.0/migration/#sass
|
||||
|
||||
@mixin bs5-media-breakpoint-up($name) {
|
||||
$min: map-get($grid-breakpoints, $name);
|
||||
@if $min and $min > 0 {
|
||||
@media (min-width: $min) {
|
||||
@content;
|
||||
}
|
||||
} @else {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin bs5-media-breakpoint-down($name) {
|
||||
$max: map-get($grid-breakpoints, $name);
|
||||
@if $max {
|
||||
@media (max-width: calc(#{$max} - 0.02px)) {
|
||||
@content;
|
||||
}
|
||||
} @else {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin bs5-media-breakpoint-between($lower, $upper) {
|
||||
$min: map-get($grid-breakpoints, $lower);
|
||||
$max: map-get($grid-breakpoints, $upper);
|
||||
@if $min and $max {
|
||||
@media (min-width: $min) and (max-width: calc(#{$max} - 0.02px)) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin bs5-media-breakpoint-only($name) {
|
||||
$breakpoint-names: map-keys($grid-breakpoints);
|
||||
$index: index($breakpoint-names, $name);
|
||||
$next-name: nth($breakpoint-names, $index + 1);
|
||||
|
||||
@include bs5-media-breakpoint-between($name, $next-name) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
// Mixin to add an after pseudo-element with a mask image to customize button colors
|
||||
/* Example:
|
||||
|
||||
.btn-arrow-right{
|
||||
&::after {
|
||||
@include btn-after("../img/arrow-right.svg");
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
@mixin btn-after($url, $color: currentColor) {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin-left: 0.5em;
|
||||
vertical-align: middle;
|
||||
background-color: currentColor;
|
||||
mask-image: url(#{$url});
|
||||
mask-size: contain;
|
||||
mask-repeat: no-repeat;
|
||||
mask-position: center;
|
||||
-webkit-mask-image: url(#{$url});
|
||||
-webkit-mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
}
|
||||
32
falcon/_dev/css/theme/custom/abstracts/_utilities.scss
Normal file
32
falcon/_dev/css/theme/custom/abstracts/_utilities.scss
Normal file
@ -0,0 +1,32 @@
|
||||
// Header selector for interpolation
|
||||
// Example usage: #{$headings} { ... }
|
||||
$headings: "h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6";
|
||||
|
||||
// Section Spacers
|
||||
$section-spacer: rem-calc(50px);
|
||||
$section-spacer-small: rem-calc(25px);
|
||||
|
||||
.section-spacer-both {
|
||||
margin-top: $section-spacer;
|
||||
margin-bottom: $section-spacer;
|
||||
@include bs5-media-breakpoint-up(lg) {
|
||||
margin-top: calc($section-spacer * 1.5);
|
||||
margin-bottom: calc($section-spacer * 1.5);
|
||||
}
|
||||
&--small {
|
||||
margin-top: $section-spacer-small;
|
||||
margin-bottom: $section-spacer-small;
|
||||
@include bs5-media-breakpoint-up(lg) {
|
||||
margin-top: calc($section-spacer-small * 2);
|
||||
margin-bottom: calc($section-spacer-small * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.section-spacer {
|
||||
@extend .section-spacer-both;
|
||||
margin-bottom: unset;
|
||||
&--small {
|
||||
margin-bottom: unset;
|
||||
}
|
||||
}
|
||||
16
falcon/_dev/css/theme/custom/components/_buttons.scss
Normal file
16
falcon/_dev/css/theme/custom/components/_buttons.scss
Normal file
@ -0,0 +1,16 @@
|
||||
// To customize text colors per button, use this map
|
||||
$btn-color: (
|
||||
"primary": $white,
|
||||
"secondary": $white,
|
||||
"light": $primary,
|
||||
"dark": $white,
|
||||
);
|
||||
|
||||
// Generate button color overrides from the map
|
||||
@each $name, $color in $btn-color {
|
||||
.btn-#{$name},
|
||||
.btn-lg-#{$name},
|
||||
.btn-sm-#{$name} {
|
||||
color: $color !important;
|
||||
}
|
||||
}
|
||||
3
falcon/_dev/img/checkmark.svg
Normal file
3
falcon/_dev/img/checkmark.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check2" viewBox="0 0 16 16">
|
||||
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 271 B |
@ -79,4 +79,19 @@ $(() => {
|
||||
$(".js-select-link").on("change", ({ target }) => {
|
||||
window.location.href = $(target).val();
|
||||
});
|
||||
|
||||
// Postcode input formatting
|
||||
const $postCodeInput = $("input[name='postcode']");
|
||||
$postCodeInput.on("input", function () {
|
||||
let value = $(this).val();
|
||||
|
||||
// Match 4 digits followed by 2 letters (e.g., 1234AB)
|
||||
const match = value.match(/^(\d{4})([a-zA-Z]{2})$/);
|
||||
|
||||
if (match) {
|
||||
// Add space between numbers and letters
|
||||
const formatted = `${match[1]} ${match[2]}`;
|
||||
$(this).val(formatted);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
|
||||
<div class="col-auto mt-2 px-1">
|
||||
<a
|
||||
class="product-page__action-btn btn btn-light shadow rounded-circle favorite-btn p-2"
|
||||
href="#"
|
||||
data-action="toggleFavorite"
|
||||
data-active="false"
|
||||
{if isset($product.id) && isset($product.id_product_attribute)}
|
||||
data-key="{$product.id}_{$product.id_product_attribute}"
|
||||
{/if}
|
||||
>
|
||||
<div class="favorite-btn__content favorite-btn__content--added">
|
||||
{capture name="svg_output"}{svg_icon file='heart.svg' }{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="material-icons product-page__action-btn-icon d-block">favorite</span>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="favorite-btn__content favorite-btn__content--add">
|
||||
{capture name="svg_output"}{svg_icon file='heart.svg' width="22"}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="material-icons product-page__action-btn-icon d-block">favorite_border</span>
|
||||
{/if}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@ -0,0 +1,28 @@
|
||||
|
||||
<a
|
||||
class="product-miniature__functional-btn product-miniature__functional-btn--top btn btn-light shadow rounded-circle favorite-btn"
|
||||
href="#"
|
||||
data-action="toggleFavorite"
|
||||
data-active="false"
|
||||
{if isset($product.id) && isset($product.id_product_attribute)}
|
||||
data-key="{$product.id}_{$product.id_product_attribute}"
|
||||
{/if}
|
||||
>
|
||||
<div class="favorite-btn__content favorite-btn__content--added">
|
||||
{capture name="svg_output"}{svg_icon file='heart.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="material-icons product-miniature__functional-btn-icon d-block">favorite</span>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="favorite-btn__content favorite-btn__content--add">
|
||||
{capture name="svg_output"}{svg_icon file='heart.svg' width="22"}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="material-icons product-miniature__functional-btn-icon d-block">favorite_border</span>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
</a>
|
||||
@ -9,7 +9,12 @@
|
||||
name="s"
|
||||
value="{$search_string}">
|
||||
<button type="submit" class="search-form__btn btn">
|
||||
<span class="material-icons">search</span>
|
||||
{capture name="svg_output"}{svg_icon file='search.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="header-top__icon material-icons">search</span>
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@ -28,7 +28,13 @@
|
||||
<div class="d-flex align-items-center mb-3 justify-content-between position-relative">
|
||||
<span class="h4 mb-0">{l s='Store information' d='Shop.Theme.Global'}</span>
|
||||
<a href="#footer_contact_list" class="icon-collapse stretched-link text-reset d-block d-md-none" data-toggle="collapse">
|
||||
<i class="material-icons d-block"></i>
|
||||
{capture name="svg_output"}{svg_icon file='chevron_down.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
<span style="margin-bottom: 3px;">
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<i class="material-icons d-block"></i>
|
||||
{/if}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -28,7 +28,13 @@
|
||||
<div class="d-flex align-items-center mb-3 justify-content-between position-relative">
|
||||
<span class="h4 mb-0">{l s='Your account' d='Shop.Theme.Customeraccount'}</span>
|
||||
<a href="#footer_account_list" class="icon-collapse stretched-link text-reset d-block d-md-none" data-toggle="collapse">
|
||||
<i class="material-icons d-block"></i>
|
||||
{capture name="svg_output"}{svg_icon file='chevron_down.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
<span style="margin-bottom: 3px;">
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<i class="material-icons d-block"></i>
|
||||
{/if}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -34,7 +34,12 @@
|
||||
{/if}
|
||||
>
|
||||
<div class="header-top__icon-container">
|
||||
<span class="header-top__icon material-icons">person</span>
|
||||
{capture name="svg_output"}{svg_icon file='person.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<span class="header-top__icon material-icons">person</span>
|
||||
{/if}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,13 @@
|
||||
<div class="d-flex align-items-center mb-3 justify-content-between position-relative">
|
||||
<span class="h4 mb-0">{$linkBlock.title}</span>
|
||||
<a href="#footer_sub_menu_{$_expand_id}" class="icon-collapse stretched-link text-reset d-block d-md-none" data-toggle="collapse">
|
||||
<i class="material-icons d-block"></i>
|
||||
{capture name="svg_output"}{svg_icon file='chevron_down.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
<span style="margin-bottom: 3px;">
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<i class="material-icons d-block"></i>
|
||||
{/if}
|
||||
</a>
|
||||
</div>
|
||||
<div id="footer_sub_menu_{$_expand_id}" class="collapse d-md-block">
|
||||
|
||||
@ -29,7 +29,13 @@
|
||||
<div class="d-flex align-items-center mb-3 justify-content-between position-relative">
|
||||
<span class="h4 mb-0">{$linkBlock.title}</span>
|
||||
<a href="#footer_sub_menu_{$_expand_id}" class="icon-collapse stretched-link text-reset d-block d-md-none" data-toggle="collapse">
|
||||
<i class="material-icons d-block"></i>
|
||||
{capture name="svg_output"}{svg_icon file='chevron_down.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
<span style="margin-bottom: 3px;">
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
{else}
|
||||
<i class="material-icons d-block"></i>
|
||||
{/if}
|
||||
</a>
|
||||
</div>
|
||||
<div id="footer_sub_menu_{$_expand_id}" class="collapse d-md-block">
|
||||
|
||||
@ -21,9 +21,14 @@
|
||||
>
|
||||
<span class="align-self-center">{$node.label}</span>
|
||||
{if $node.children|count}
|
||||
{capture name="svg_output"}{svg_icon file='chevron_down.svg'}{/capture}
|
||||
{if $smarty.capture.svg_output}
|
||||
<span class="d-none d-md-block pl-1" style="margin-bottom: 3px;">
|
||||
{svg_icon file='chevron_down.svg' }
|
||||
{$smarty.capture.svg_output nofilter}
|
||||
</span>
|
||||
{else}
|
||||
<i class="material-icons d-block"></i>
|
||||
{/if}
|
||||
{/if}
|
||||
</a>
|
||||
{if $node.children|count}
|
||||
|
||||
@ -37,7 +37,6 @@
|
||||
<div class="header-top js-header-top">
|
||||
<div class="header-top__content pb-md-0 py-2">
|
||||
<div class="container">
|
||||
|
||||
<div class="row header-top__row">
|
||||
|
||||
<div class="col flex-grow-0 header-top__block header-top__block--menu-toggle d-block d-md-none">
|
||||
|
||||
@ -26,38 +26,43 @@
|
||||
|
||||
{block name='pagination_page_list'}
|
||||
{if $pagination.should_be_displayed}
|
||||
<nav>
|
||||
<ul class="pagination justify-content-center mt-4 mb-2">
|
||||
{foreach from=$pagination.pages item="page"}
|
||||
<li class="page-item{if $page.current} active{/if} {if $page.type === 'spacer'}disabled{/if}">
|
||||
{if $page.type === 'spacer'}
|
||||
<span
|
||||
rel="{if $page.type === 'previous'}prev{elseif $page.type === 'next'}next{else}nofollow{/if}"
|
||||
href="#"
|
||||
class="page-link"
|
||||
>
|
||||
…
|
||||
</span>
|
||||
{else}
|
||||
<a
|
||||
rel="{if $page.type === 'previous'}prev{elseif $page.type === 'next'}next{else}nofollow{/if}"
|
||||
href="{$page.url}"
|
||||
class="page-link {['disabled' => !$page.clickable, 'js-search-link' => true]|classnames}"
|
||||
>
|
||||
{if $page.type === 'previous'}
|
||||
<span class="material-icons font-reset align-middle">keyboard_arrow_left</span>
|
||||
<span class="sr-only">{l s='Previous' d='Shop.Theme.Actions'}</span>
|
||||
{elseif $page.type === 'next'}
|
||||
<span class="material-icons font-reset align-middle">keyboard_arrow_right</span>
|
||||
<span class="sr-only">{l s='Next' d='Shop.Theme.Actions'}</span>
|
||||
{else}
|
||||
{$page.page}
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="results__block">
|
||||
{l s='%curr_numer% van %total_items% resultaten' sprintf=['%curr_numer%' => $pagination.items_shown_to,'%total_items%' => $pagination.total_items] d='Shop.Theme.Actions'}
|
||||
</div>
|
||||
<nav>
|
||||
<ul class="pagination justify-content-center m-0">
|
||||
{foreach from=$pagination.pages item="page"}
|
||||
<li class="page-item{if $page.current} active{/if} {if $page.type === 'spacer'}disabled{/if}">
|
||||
{if $page.type === 'spacer'}
|
||||
<span
|
||||
rel="{if $page.type === 'previous'}prev{elseif $page.type === 'next'}next{else}nofollow{/if}"
|
||||
href="#"
|
||||
class="page-link"
|
||||
>
|
||||
…
|
||||
</span>
|
||||
{else}
|
||||
<a
|
||||
rel="{if $page.type === 'previous'}prev{elseif $page.type === 'next'}next{else}nofollow{/if}"
|
||||
href="{$page.url}"
|
||||
class="page-link {['disabled' => !$page.clickable, 'js-search-link' => true]|classnames}"
|
||||
>
|
||||
{if $page.type === 'previous'}
|
||||
<span class="material-icons font-reset align-middle">keyboard_arrow_left</span>
|
||||
<span class="sr-only">{l s='Previous' d='Shop.Theme.Actions'}</span>
|
||||
{elseif $page.type === 'next'}
|
||||
<span class="material-icons font-reset align-middle">keyboard_arrow_right</span>
|
||||
<span class="sr-only">{l s='Next' d='Shop.Theme.Actions'}</span>
|
||||
{else}
|
||||
{$page.page}
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
@ -1,7 +1,15 @@
|
||||
{* Defensive: Handles LazyArray objects for category *}
|
||||
{if is_object($category)}
|
||||
{$category = $category|json_encode|json_decode:true}
|
||||
{if isset($category.category)}
|
||||
{$category = $category.category}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
<div id="js-product-list-footer">
|
||||
{if $category.additional_description && $listing.pagination.items_shown_from == 1}
|
||||
{if isset($category.additional_description) && $category.additional_description && $listing.pagination.items_shown_from == 1}
|
||||
<div id="category-description-2" class="cms-content my-3">
|
||||
{$category.additional_description nofilter}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@ -26,7 +26,7 @@
|
||||
{$listingType = $type|default:'listing'}
|
||||
<div
|
||||
{if $listingType === 'listing'}
|
||||
class="products-list__block products-list__block--grid"
|
||||
class="products-list__block col col-sm-6 col-lg-4 col-xl-3"
|
||||
{elseif $listingType === 'slider'}
|
||||
class="swiper-slide product-slider__item col-6 col-md-4 col-lg-3"
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user