Error 500 Internal Server Error

GET https://forges-preprod.kwantic.dev/de_DE/products/category/signature/art-de-la-table

Forwarded to ErrorController (8afa64)

Exceptions

Unexpected "endif" tag (expecting closing tag for the "for" tag defined near line 364) in @SyliusShop/product/_filter_sidebar.html.twig at line 451.

Exception

Twig\Error\ SyntaxError

Show exception properties
Twig\Error\SyntaxError {#16779
  -lineno: 451
  -rawMessage: "Unexpected "endif" tag (expecting closing tag for the "for" tag defined near line 364)."
  -source: Twig\Source {#14361
    -code: """
      <style>\n
      \t/* Modern Dropdowns */\n
      \t.custom-dropdown .dropdown-menu-custom {\n
      \t\tdisplay: none;\n
      \t\tborder: none;\n
      \t\tborder-radius: 16px;\n
      \t\tbox-shadow: 0 10px 40px rgba(0, 0, 0, 0.08); /* Soft luxury shadow */\n
      \t\tpadding: 1.5rem !important;\n
      \t\ttransform-origin: top center;\n
      \t\tz-index: 1100 !important;\n
      \t}\n
      \t.custom-dropdown.show .dropdown-menu-custom,\n
      \t.custom-dropdown.active .dropdown-menu-custom {\n
      \t\tdisplay: flex !important;\n
      \t\tflex-direction: column;\n
      \t\tgap: 12px;\n
      \t\tanimation: fadeInDropdown 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;\n
      \t}\n
      \t@keyframes fadeInDropdown {\n
      \t\tfrom {\n
      \t\t\topacity: 0;\n
      \t\t\ttransform: translateY(-8px) scale(0.98);\n
      \t\t}\n
      \t\tto {\n
      \t\t\topacity: 1;\n
      \t\t\ttransform: translateY(0) scale(1);\n
      \t\t}\n
      \t}\n
      \n
      \t/* Modern Pills */\n
      \t.filter-pill {\n
      \t\tpadding: 0.65rem 1.4rem;\n
      \t\tborder-radius: 50px;\n
      \t\tbackground-color: #f7f7f7;\n
      \t\tborder: 1px solid #f7f7f7;\n
      \t\ttransition: all 0.25s ease;\n
      \t\tfont-size: 0.85rem;\n
      \t\tfont-weight: 600;\n
      \t\tcolor: #222;\n
      \t\tletter-spacing: 0.3px;\n
      \t\tcursor: pointer;\n
      \t}\n
      \t.dropdown-trigger {\n
      \t\tcursor: pointer;\n
      \t}\n
      \t.filter-pill:hover {\n
      \t\tbackground-color: #e8e8e8;\n
      \t\tborder-color: #e8e8e8;\n
      \t}\n
      \t.filter-pill.active, .filter-pill.show {\n
      \t\tbackground-color: #000 !important;\n
      \t\tcolor: #fff !important;\n
      \t\tborder-color: #000 !important;\n
      \t}\n
      \t.filter-pill.active svg, .filter-pill.show svg {\n
      \t\tstroke: #fff;\n
      \t}\n
      \t.custom-dropdown.show .arrow-icon,\n
      \t.custom-dropdown.active .arrow-icon {\n
      \t\ttransform: rotate(180deg);\n
      \t}\n
      \t.transition-transform {\n
      \t\ttransition: transform 0.25s ease;\n
      \t\tdisplay: inline-block;\n
      \t}\n
      \n
      \t/* Modern Custom Checkbox/Radio */\n
      \t.modern-checkbox {\n
      \t\tappearance: none;\n
      \t\twidth: 22px;\n
      \t\theight: 22px;\n
      \t\tborder: 1.5px solid #d1d1d1;\n
      \t\tborder-radius: 6px;\n
      \t\toutline: none;\n
      \t\tcursor: pointer;\n
      \t\tposition: relative;\n
      \t\ttransition: all 0.2s ease-in-out;\n
      \t\tbackground-color: #fff;\n
      \t\tflex-shrink: 0;\n
      \t\tmargin: 0;\n
      \t}\n
      \t.modern-checkbox:checked {\n
      \t\tbackground-color: #000;\n
      \t\tborder-color: #000;\n
      \t}\n
      \t.modern-checkbox:checked::after {\n
      \t\tcontent: '';\n
      \t\tposition: absolute;\n
      \t\ttop: 50%;\n
      \t\tleft: 50%;\n
      \t\twidth: 6px;\n
      \t\theight: 11px;\n
      \t\tborder: solid white;\n
      \t\tborder-width: 0 2.5px 2.5px 0;\n
      \t\ttransform: translate(-50%, -60%) rotate(45deg);\n
      \t}\n
      \t.modern-radio {\n
      \t\tborder-radius: 50%;\n
      \t}\n
      \t.modern-radio:checked::after {\n
      \t\tborder: none;\n
      \t\twidth: 8px;\n
      \t\theight: 8px;\n
      \t\tbackground-color: white;\n
      \t\tborder-radius: 50%;\n
      \t\ttransform: translate(-50%, -50%);\n
      \t}\n
      \t.checkbox-item:hover .modern-checkbox {\n
      \t\tborder-color: #000;\n
      \t}\n
      \n
      \t/* Text styles inside dropdowns */\n
      \t.checkbox-text {\n
      \t\tfont-size: 0.9rem;\n
      \t\tfont-weight: 500;\n
      \t\tcolor: #333;\n
      \t\ttransition: color 0.2s ease;\n
      \t}\n
      \t.checkbox-item:hover .checkbox-text {\n
      \t\tcolor: #000;\n
      \t}\n
      \t.checkbox-count {\n
      \t\tfont-size: 0.8rem;\n
      \t\tcolor: #888;\n
      \t\tmargin-left: 4px;\n
      \t}\n
      \n
      \t/* New Collapsible Area Styles */\n
      \t.more-filters-collapse {\n
      \t\tbackground-color: #fcfcfc;\n
      \t\tborder-radius: 16px;\n
      \t\tmargin-top: 1rem;\n
      \t\tborder: 1px solid #eaeaea;\n
      \t}\n
      \n
      \t.more-filters-collapse .filter-section {\n
      \t\tmin-width: 220px;\n
      \t\tflex: 1;\n
      \t}\n
      </style>\n
      \n
      <<<<<<< Updated upstream\n
      <div class="d-flex flex-wrap justify-content-between align-items-center w-100 mb-4">\n
      \t<div\n
      \t\tclass="test_scroll_ver">\n
      \t\t{# Left Group: Primary Filters #}\n
      \t\t<div class="d-flex flex-wrap gap-3 align-items-center">\n
      \t\t\t{% if taxon is not defined or taxon is null %}\n
      \t\t\t\t{# 1. Catégorie #}\n
      \t\t\t\t{% if facets.taxons is defined %}\n
      =======\n
      <div\n
      \tclass="d-flex flex-wrap justify-content-between align-items-center w-100 mb-4">\n
      \t<div class="test_scroll_ver">\n
      \t{# Left Group: Primary Filters #}\n
      \t<div class="d-flex flex-wrap gap-3 align-items-center">\n
      \t\t{% if taxon is not defined or taxon is null %}\n
      \t\t\t{# 1. Catégorie #}\n
      \t\t\t{% if facets.taxons is defined %}\n
      \t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t<div class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t<span>Catégories</span>\n
      \t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t</div>\n
      \t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t\t{% for bucket in facets.taxons %}\n
      \t\t\t\t\t\t\t{% if bucket.count > 0 %}\n
      \t\t\t\t\t\t\t\t{% set isChecked = (app.request.query.all.taxons is defined and bucket.key in app.request.query.all.taxons) %}\n
      \t\t\t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t\t\t<input type="checkbox" name="taxons[]" value="{{ bucket.key }}" {% if isChecked %} checked {% endif %} class="modern-checkbox">\n
      \t\t\t\t\t\t\t\t\t<span class="checkbox-text text-capitalize">{{ bucket.key|replace({'-': ' '}) }}\n
      \t\t\t\t\t\t\t\t\t\t<span class="checkbox-count">({{ bucket.count }})</span>\n
      \t\t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t{% endfor %}\n
      \t\t\t\t\t</div>\n
      \t\t\t\t</div>\n
      \t\t\t{% endif %}\n
      \n
      \t\t\t{# 2. Prix #}\n
      \t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t<div class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t<span>Prix</span>\n
      \t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t</span>\n
      \t\t\t\t</div>\n
      \t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 220px;">\n
      \t\t\t\t\t{% set currentPrice = app.request.query.get('priceRange') %}\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="priceRange" value="under_150" {% if currentPrice == 'under_150' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">- de 150 €</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="priceRange" value="150_300" {% if currentPrice == '150_300' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">150 € - 300 €</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-4 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="priceRange" value="over_300" {% if currentPrice == 'over_300' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">300 € et +</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 pt-3 border-top cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="priceRange" value="" {% if not currentPrice %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text text-muted">Tous les prix</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t</div>\n
      \t\t\t</div>\n
      \n
      \t\t\t{# 3. Trier par #}\n
      \t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t<div class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t<span>\n
      \t\t\t\t\t\t{% set currentSort = app.request.query.get('sort') %}\n
      \t\t\t\t\t\t{% if currentSort == 'bestseller' %}Meilleures ventes\n
      \t\t\t\t\t\t\t{% elseif currentSort == 'price_asc' %}Prix croissant\n
      \t\t\t\t\t\t\t{% elseif currentSort == 'price_desc' %}Prix décroissant\n
      \t\t\t\t\t\t\t{% elseif currentSort == 'newest' %}Nouveautés\n
      \t\t\t\t\t\t\t{% else %}Trier par\n
      \t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t</span>\n
      \t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t</span>\n
      \t\t\t\t</div>\n
      \t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="sort" value="newest" {% if currentSort == 'newest' or not currentSort %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">Nouveautés</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="sort" value="bestseller" {% if currentSort == 'bestseller' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">Meilleures ventes</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="sort" value="price_asc" {% if currentSort == 'price_asc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">Prix croissant</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-0 cursor-pointer">\n
      \t\t\t\t\t\t<input type="radio" name="sort" value="price_desc" {% if currentSort == 'price_desc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t<span class="checkbox-text">Prix décroissant</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t</div>\n
      \t\t\t</div>\n
      \n
      \t\t\t{# 4. Disponibilité (Pill Toggle) #}\n
      \t\t\t<div class="filter-item">\n
      \t\t\t\t{% set isAvailable = app.request.query.get('available') %}\n
      \t\t\t\t<label class="cursor-pointer d-flex align-items-center gap-2 m-0 filter-pill {{ isAvailable ? 'active' : '' }}">\n
      \t\t\t\t\t<input type="checkbox" name="available" value="1" {% if isAvailable %} checked {% endif %} class="d-none" onchange="this.parentElement.classList.toggle('active'); this.form.dispatchEvent(new Event('change', {bubbles: true, cancelable: true}));">\n
      \t\t\t\t\t<span>✓ En stock rapide</span>\n
      \t\t\t\t</label>\n
      \t\t\t</div>\n
      \t\t{% else %}\n
      \t\t\t{# Filters specific to Category Pages (dynamically loaded from facets) #}\n
      \t\t\t{% set hasShownAttributes = false %}\n
      \t\t\t{% for facetCode, facetData in facets %}\n
      \t\t\t\t{% if facetCode != 'taxons' and facetData|length > 0 %}\n
      \t\t\t\t\t{% set hasShownAttributes = true %}\n
      \t\t\t\t\t{% set transKey = 'app.ui.filter_label.' ~ facetCode|lower %}\n
      \t\t\t\t\t{% set translatedLabel = transKey|trans %}\n
      \t\t\t\t\t{% set facetLabel = facetLabels[facetCode]|default((translatedLabel != transKey) ? translatedLabel : facetCode|replace({'_': ' '})|capitalize) %}\n
      \n
      >>>>>>> Stashed changes\n
      \t\t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t\t<span>Catégories</span>\n
      \t\t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t</button>\n
      \t\t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t\t\t{% for bucket in facets.taxons %}\n
      \t\t\t\t\t\t\t\t{% if bucket.count > 0 %}\n
      \t\t\t\t\t\t\t\t\t{% set isChecked = (app.request.query.all.taxons is defined and bucket.key in app.request.query.all.taxons) %}\n
      \t\t\t\t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t\t\t\t<input type="checkbox" name="taxons[]" value="{{ bucket.key }}" {% if isChecked %} checked {% endif %} class="modern-checkbox">\n
      \t\t\t\t\t\t\t\t\t\t<span class="checkbox-text text-capitalize">{{ bucket.key|replace({'-': ' '}) }}\n
      \t\t\t\t\t\t\t\t\t\t\t<span class="checkbox-count">({{ bucket.count }})</span>\n
      \t\t\t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t\t{% endfor %}\n
      \t\t\t\t\t\t</div>\n
      \t\t\t\t\t</div>\n
      \t\t\t\t{% endif %}\n
      \n
      \t\t\t\t{# 2. Prix #}\n
      \t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t<span>Prix</span>\n
      \t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t</button>\n
      \t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 220px;">\n
      \t\t\t\t\t\t{% set currentPrice = app.request.query.get('priceRange') %}\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="priceRange" value="under_150" {% if currentPrice == 'under_150' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">- de 150 €</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="priceRange" value="150_300" {% if currentPrice == '150_300' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">150 € - 300 €</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-4 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="priceRange" value="over_300" {% if currentPrice == 'over_300' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">300 € et +</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 pt-3 border-top cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="priceRange" value="" {% if not currentPrice %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text text-muted">Tous les prix</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t</div>\n
      \t\t\t\t</div>\n
      \n
      \t\t\t\t{# 3. Trier par #}\n
      \t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t<span>\n
      \t\t\t\t\t\t\t{% set currentSort = app.request.query.get('sort') %}\n
      \t\t\t\t\t\t\t{% if currentSort == 'bestseller' %}Meilleures ventes\n
      \t\t\t\t\t\t\t\t{% elseif currentSort == 'price_asc' %}Prix croissant\n
      \t\t\t\t\t\t\t\t{% elseif currentSort == 'price_desc' %}Prix décroissant\n
      \t\t\t\t\t\t\t\t{% elseif currentSort == 'newest' %}Nouveautés\n
      \t\t\t\t\t\t\t\t{% else %}Trier par\n
      \t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t</button>\n
      \t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="newest" {% if currentSort == 'newest' or not currentSort %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Nouveautés</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="bestseller" {% if currentSort == 'bestseller' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Meilleures ventes</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="price_asc" {% if currentSort == 'price_asc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Prix croissant</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-0 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="price_desc" {% if currentSort == 'price_desc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Prix décroissant</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t</div>\n
      \t\t\t\t</div>\n
      \n
      \t\t\t\t{# 4. Disponibilité (Pill Toggle) #}\n
      \t\t\t\t<div class="filter-item">\n
      \t\t\t\t\t{% set isAvailable = app.request.query.get('available') %}\n
      \t\t\t\t\t<label class="cursor-pointer d-flex align-items-center gap-2 m-0 filter-pill {{ isAvailable ? 'active' : '' }}">\n
      \t\t\t\t\t\t<input type="checkbox" name="available" value="1" {% if isAvailable %} checked {% endif %} class="d-none" onchange="this.parentElement.classList.toggle('active'); this.form.dispatchEvent(new Event('change', {bubbles: true, cancelable: true}));">\n
      \t\t\t\t\t\t<span>✓ En stock rapide</span>\n
      \t\t\t\t\t</label>\n
      \t\t\t\t</div>\n
      \t\t\t{% else %}\n
      \t\t\t\t{# Filters specific to Category Pages (dynamically loaded from facets) #}\n
      \t\t\t\t{% set hasShownAttributes = false %}\n
      \t\t\t\t{% for facetCode, facetData in facets %}\n
      \t\t\t\t\t{% if facetCode != 'taxons' and facetData|length > 0 %}\n
      \t\t\t\t\t\t{% set hasShownAttributes = true %}\n
      \t\t\t\t\t\t{% set transKey = 'app.ui.filter_label.' ~ facetCode|lower %}\n
      \t\t\t\t\t\t{% set translatedLabel = transKey|trans %}\n
      \t\t\t\t\t\t{% set facetLabel = facetLabels[facetCode]|default((translatedLabel != transKey) ? translatedLabel : facetCode|replace({'_': ' '})|capitalize) %}\n
      \n
      \t\t\t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t\t\t<span>{{ facetLabel }}</span>\n
      \t\t\t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t</button>\n
      \t\t\t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t\t\t\t{% for bucket in facetData %}\n
      \t\t\t\t\t\t\t\t\t{% if bucket.count > 0 %}\n
      \t\t\t\t\t\t\t\t\t\t{% if 'options.' in facetCode %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set paramName = 'options[' ~ facetCode|replace({'options.': ''}) ~ '][]' %}\n
      \t\t\t\t\t\t\t\t\t\t{% elseif 'attributes.' in facetCode %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set paramName = 'attributes[' ~ facetCode|replace({'attributes.': ''}) ~ '][]' %}\n
      \t\t\t\t\t\t\t\t\t\t{% else %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set paramName = facetCode ~ '[]' %}\n
      \t\t\t\t\t\t\t\t\t\t{% endif %}\n
      \n
      \t\t\t\t\t\t\t\t\t\t{% set cleanCode = facetCode|replace({'options.': '', 'attributes.': ''}) %}\n
      \t\t\t\t\t\t\t\t\t\t{% set isChecked = false %}\n
      \t\t\t\t\t\t\t\t\t\t{% if filters.attributes[cleanCode] is defined and bucket.key in filters.attributes[cleanCode] %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set isChecked = true %}\n
      \t\t\t\t\t\t\t\t\t\t{% elseif filters.options[cleanCode] is defined and bucket.key in filters.options[cleanCode] %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set isChecked = true %}\n
      \t\t\t\t\t\t\t\t\t\t{% endif %}\n
      \n
      \t\t\t\t\t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t\t\t\t\t<input type="checkbox" name="{{ paramName }}" value="{{ bucket.key }}" {% if isChecked %} checked {% endif %} class="modern-checkbox">\n
      \t\t\t\t\t\t\t\t\t\t\t<span class="checkbox-text">{{ bucket.key }}\n
      \t\t\t\t\t\t\t\t\t\t\t\t<span class="checkbox-count">({{ bucket.count }})</span>\n
      \t\t\t\t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t\t\t{% endfor %}\n
      \t\t\t\t\t\t\t</div>\n
      \t\t\t\t\t\t</div>\n
      \t\t\t\t\t{% endif %}\n
      \t\t\t\t{% endfor %}\n
      \n
      \t\t\t\t{% if not hasShownAttributes %}\n
      \t\t\t\t\t{# Fallback if no specific attributes are attached to this category #}\n
      \t\t\t\t\t<div class="filter-item text-muted small">Aucun filtre spécifique défini pour cette catégorie.</div>\n
      \t\t\t\t{% endif %}\n
      \n
      \t\t\t\t{# 3. Trier par for Taxon pages as well #}\n
      \t\t\t\t<div class="filter-item custom-dropdown position-relative">\n
      \t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center gap-2 filter-pill border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t<span>\n
      \t\t\t\t\t\t\t{% set currentSort = app.request.query.get('sort') %}\n
      \t\t\t\t\t\t\t{% if currentSort == 'bestseller' %}Meilleures ventes\n
      \t\t\t\t\t\t\t\t{% elseif currentSort == 'price_asc' %}Prix croissant\n
      \t\t\t\t\t\t\t\t{% elseif currentSort == 'price_desc' %}Prix décroissant\n
      \t\t\t\t\t\t\t\t{% else %}Trier par\n
      \t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t</span>\n
      \t\t\t\t\t</button>\n
      \t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px;">\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="newest" {% if currentSort == 'newest' or not currentSort %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Nouveautés</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="bestseller" {% if currentSort == 'bestseller' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Meilleures ventes</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="price_asc" {% if currentSort == 'price_asc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Prix croissant</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-0 cursor-pointer">\n
      \t\t\t\t\t\t\t<input type="radio" name="sort" value="price_desc" {% if currentSort == 'price_desc' %} checked {% endif %} class="modern-checkbox modern-radio">\n
      \t\t\t\t\t\t\t<span class="checkbox-text">Prix décroissant</span>\n
      \t\t\t\t\t\t</label>\n
      \t\t\t\t\t</div>\n
      \t\t\t\t</div>\n
      \t\t\t{% endif %}\n
      \t\t</div>\n
      \n
      \t</div>\n
      \n
      \t</div>\n
      \t{# End Left Group #}\n
      \n
      \t{# Right Group: Plus de filtres #}\n
      \t{% if taxon is not defined or taxon is null %}\n
      \t\t<div class="filter-item">\n
      \t\t\t<button type="button" class="btn btn-dark rounded-pill d-flex align-items-center gap-2 px-4 py-2" style="font-size: 0.85rem; font-weight: 600; letter-spacing: 0.5px;" data-bs-toggle="collapse" data-bs-target="#moreFiltersCollapse" aria-expanded="false" aria-controls="moreFiltersCollapse" id="toggle-more-filters-btn">\n
      \t\t\t\t<svg width="16" height="16" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">\n
      \t\t\t\t\t<path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path>\n
      \t\t\t\t</svg>\n
      \t\t\t\t<span>PLUS DE FILTRES</span>\n
      \t\t\t</button>\n
      \t\t</div>\n
      \t{% endif %}\n
      </div>\n
      \n
      {# Dropdown closing is handled by filter_controller.js (closeDropdowns action) #}\n
      \n
      {# COLLAPSIBLE ZONE POUR LES AUTRES FILTRES DYNAMIQUES (HORIZONTAL) #}\n
      <div class="collapse w-100" id="moreFiltersCollapse">\n
      \t<div class="more-filters-collapse p-4 mb-4 shadow-sm">\n
      \t\t<div class="d-flex flex-wrap gap-5">\n
      \t\t\t{% for facetCode, facetData in facets %}\n
      \t\t\t\t{% if facetCode != 'taxons' %}\n
      \n
      \t\t\t\t\t{% set hasOptions = false %}\n
      \t\t\t\t\t{% for bucket in facetData %}\n
      \t\t\t\t\t\t{% if bucket.count > 0 %}\n
      \t\t\t\t\t\t\t{% set hasOptions = true %}\n
      \t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t{% endfor %}\n
      \n
      \t\t\t\t\t{% if hasOptions %}\n
      \t\t\t\t\t\t{% set transKey = 'app.ui.filter_label.' ~ facetCode|lower %}\n
      \t\t\t\t\t\t{% set translatedLabel = transKey|trans %}\n
      \t\t\t\t\t\t{% set facetLabel = facetLabels[facetCode]|default((translatedLabel != transKey) ? translatedLabel : facetCode|replace({'_': ' '})|capitalize) %}\n
      \n
      \t\t\t\t\t\t<div class="filter-section custom-dropdown position-relative" style="min-width: 220px;">\n
      \t\t\t\t\t\t\t<h6 class="fw-bold mb-3" style="font-size: 0.8rem; color: #555;">{{ facetLabel }}</h6>\n
      \n
      \t\t\t\t\t\t\t{% if 'options.' in facetCode %}\n
      \t\t\t\t\t\t\t\t{% set paramName = 'options[' ~ facetCode|replace({'options.': ''}) ~ '][]' %}\n
      \t\t\t\t\t\t\t{% elseif 'attributes.' in facetCode %}\n
      \t\t\t\t\t\t\t\t{% set paramName = 'attributes[' ~ facetCode|replace({'attributes.': ''}) ~ '][]' %}\n
      \t\t\t\t\t\t\t{% else %}\n
      \t\t\t\t\t\t\t\t{% set paramName = facetCode ~ '[]' %}\n
      \t\t\t\t\t\t\t{% endif %}\n
      \n
      \t\t\t\t\t\t\t<button type="button" class="dropdown-trigger cursor-pointer d-flex align-items-center justify-content-between gap-2 filter-pill w-100 border-0" data-action="click->filter#toggleDropdown">\n
      \t\t\t\t\t\t\t\t<span>{{ facetLabel }}</span>\n
      \t\t\t\t\t\t\t\t<span class="arrow-icon transition-transform">\n
      \t\t\t\t\t\t\t\t\t<svg width="10" height="6" viewbox="0 0 10 6" fill="none"><path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>\n
      \t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t</button>\n
      \t\t\t\t\t\t\t\n
      \t\t\t\t\t\t\t<div class="dropdown-menu-custom position-absolute mt-3 bg-white z-3" style="min-width: 240px; top: 100%; left: 0;">\n
      \t\t\t\t\t\t\t\t{% for bucket in facetData %}\n
      \t\t\t\t\t\t\t\t\t{% if bucket.count > 0 %}\n
      \t\t\t\t\t\t\t\t\t\t{% set cleanCode = facetCode|replace({'options.': '', 'attributes.': ''}) %}\n
      \t\t\t\t\t\t\t\t\t\t{% set isChecked = false %}\n
      \t\t\t\t\t\t\t\t\t\t{% if filters.attributes[cleanCode] is defined and bucket.key in filters.attributes[cleanCode] %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set isChecked = true %}\n
      \t\t\t\t\t\t\t\t\t\t{% elseif filters.options[cleanCode] is defined and bucket.key in filters.options[cleanCode] %}\n
      \t\t\t\t\t\t\t\t\t\t\t{% set isChecked = true %}\n
      \t\t\t\t\t\t\t\t\t\t{% endif %}\n
      \n
      \t\t\t\t\t\t\t\t\t\t<label class="checkbox-item d-flex align-items-center gap-3 mb-3 cursor-pointer">\n
      \t\t\t\t\t\t\t\t\t\t\t<input type="checkbox" name="{{ paramName }}" value="{{ bucket.key }}" {% if isChecked %} checked {% endif %} class="modern-checkbox">\n
      \t\t\t\t\t\t\t\t\t\t\t<span class="checkbox-text">{{ bucket.key }}\n
      \t\t\t\t\t\t\t\t\t\t\t\t<span class="checkbox-count">({{ bucket.count }})</span>\n
      \t\t\t\t\t\t\t\t\t\t\t</span>\n
      \t\t\t\t\t\t\t\t\t\t</label>\n
      \t\t\t\t\t\t\t\t\t{% endif %}\n
      \t\t\t\t\t\t\t\t{% endfor %}\n
      \t\t\t\t\t\t\t</div>\n
      \t\t\t\t\t\t</div>\n
      \t\t\t\t\t{% endif %}\n
      \t\t\t\t{% endif %}\n
      \t\t\t{% endfor %}\n
      \t\t</div>\n
      \n
      \t\t{# Optional Validation button (since it auto-submits, we can show a visual validation trigger if desired, or let auto-submit handle it) #}\n
      \t\t<div class="mt-4 pt-3 border-top d-flex justify-content-end">\n
      \n
      \n
      \t\t\t<button class="btn-circle-load-more btn-animated" data-bs-toggle="collapse" data-bs-target="#moreFiltersCollapse">\n
      <<<<<<< Updated upstream\n
      \t\t\t\t<span class="btn-icon">\n
      \t\t\t\t\t<svg width="8" height="8" viewbox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">\n
      \t\t\t\t\t\t<path d="M7.35355 4.03519C7.54882 3.83993 7.54882 3.52335 7.35355 3.32809L4.17157 0.146106C3.97631 -0.0491558 3.65973 -0.0491558 3.46447 0.146106C3.2692 0.341369 3.2692 0.657951 3.46447 0.853213L6.29289 3.68164L3.46447 6.51007C3.2692 6.70533 3.2692 7.02191 3.46447 7.21717C3.65973 7.41244 3.97631 7.41244 4.17157 7.21717L7.35355 4.03519ZM0 3.68164L4.37114e-08 4.18164L7 4.18164L7 3.68164L7 3.18164L-4.37114e-08 3.18164L0 3.68164Z" fill="black"></path>\n
      \t\t\t\t\t</svg>\n
      \t\t\t\t</span>\n
      =======\n
      \t\t\t\t\t\t\t<span class="btn-icon">\n
      \t\t\t\t\t\t\t\t<svg width="8" height="8" viewbox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">\n
      \t\t\t\t\t\t\t\t\t<path d="M7.35355 4.03519C7.54882 3.83993 7.54882 3.52335 7.35355 3.32809L4.17157 0.146106C3.97631 -0.0491558 3.65973 -0.0491558 3.46447 0.146106C3.2692 0.341369 3.2692 0.657951 3.46447 0.853213L6.29289 3.68164L3.46447 6.51007C3.2692 6.70533 3.2692 7.02191 3.46447 7.21717C3.65973 7.41244 3.97631 7.41244 4.17157 7.21717L7.35355 4.03519ZM0 3.68164L4.37114e-08 4.18164L7 4.18164L7 3.68164L7 3.18164L-4.37114e-08 3.18164L0 3.68164Z" fill="black"></path>\n
      \t\t\t\t\t\t\t\t</svg>\n
      \t\t\t\t\t\t\t</span>\n
      >>>>>>> Stashed changes\n
      \t\t\t\t<span class="text font-bold">Fermer</span>\n
      \t\t\t</button>\n
      \n
      \n
      \t\t</div>\n
      \t</div>\n
      </div>\n
      """
    -name: "@SyliusShop/product/_filter_sidebar.html.twig"
    -path: "/home/forges/subdomains/preprod/templates/bundles/SyliusShopBundle/product/_filter_sidebar.html.twig"
  }
  -phpFile: "/home/forges/subdomains/preprod/vendor/twig/twig/src/Parser.php"
  -phpLine: 207
}
  1.                             <input type="radio" name="sort" value="price_desc" {% if currentSort == 'price_desc' %} checked {% endif %} class="modern-checkbox modern-radio">
  2.                             <span class="checkbox-text">Prix décroissant</span>
  3.                         </label>
  4.                     </div>
  5.                 </div>
  6.             {% endif %}
  7.         </div>
  8.     </div>
  9.     </div>
  1.         $stream->expect(Token::BLOCK_END_TYPE);
  2.         $body $this->parser->subparse([$this'decideForFork']);
  3.         if ('else' == $stream->next()->getValue()) {
  4.             $elseLineno $stream->getCurrent()->getLine();
  5.             $stream->expect(Token::BLOCK_END_TYPE);
  6.             $else = new ForElseNode($this->parser->subparse([$this'decideForEnd'], true), $elseLineno);
  7.         } else {
  8.             $else null;
  9.         }
  10.         $stream->expect(Token::BLOCK_END_TYPE);
in vendor/twig/twig/src/Parser.php -> parse (line 224)
  1.                     }
  2.                     $this->stream->next();
  3.                     $subparser->setParser($this);
  4.                     $node $subparser->parse($token);
  5.                     if (!$node) {
  6.                         trigger_deprecation('twig/twig''3.12''Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".'$subparser::class);
  7.                     } else {
  8.                         $node->setNodeTag($subparser->getTag());
  9.                         $rv[] = $node;
  1.         $end false;
  2.         while (!$end) {
  3.             switch ($stream->next()->getValue()) {
  4.                 case 'else':
  5.                     $stream->expect(Token::BLOCK_END_TYPE);
  6.                     $else $this->parser->subparse([$this'decideIfEnd']);
  7.                     break;
  8.                 case 'elseif':
  9.                     $expr $this->parser->parseExpression();
  10.                     $stream->expect(Token::BLOCK_END_TYPE);
in vendor/twig/twig/src/Parser.php -> parse (line 224)
  1.                     }
  2.                     $this->stream->next();
  3.                     $subparser->setParser($this);
  4.                     $node $subparser->parse($token);
  5.                     if (!$node) {
  6.                         trigger_deprecation('twig/twig''3.12''Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".'$subparser::class);
  7.                     } else {
  8.                         $node->setNodeTag($subparser->getTag());
  9.                         $rv[] = $node;
  1.     {
  2.         $lineno $token->getLine();
  3.         $expr $this->parser->parseExpression();
  4.         $stream $this->parser->getStream();
  5.         $stream->expect(Token::BLOCK_END_TYPE);
  6.         $body $this->parser->subparse([$this'decideIfFork']);
  7.         $tests = [$expr$body];
  8.         $else null;
  9.         $end false;
  10.         while (!$end) {
in vendor/twig/twig/src/Parser.php -> parse (line 224)
  1.                     }
  2.                     $this->stream->next();
  3.                     $subparser->setParser($this);
  4.                     $node $subparser->parse($token);
  5.                     if (!$node) {
  6.                         trigger_deprecation('twig/twig''3.12''Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".'$subparser::class);
  7.                     } else {
  8.                         $node->setNodeTag($subparser->getTag());
  9.                         $rv[] = $node;
  1.     {
  2.         $lineno $token->getLine();
  3.         $expr $this->parser->parseExpression();
  4.         $stream $this->parser->getStream();
  5.         $stream->expect(Token::BLOCK_END_TYPE);
  6.         $body $this->parser->subparse([$this'decideIfFork']);
  7.         $tests = [$expr$body];
  8.         $else null;
  9.         $end false;
  10.         while (!$end) {
in vendor/twig/twig/src/Parser.php -> parse (line 224)
  1.                     }
  2.                     $this->stream->next();
  3.                     $subparser->setParser($this);
  4.                     $node $subparser->parse($token);
  5.                     if (!$node) {
  6.                         trigger_deprecation('twig/twig''3.12''Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".'$subparser::class);
  7.                     } else {
  8.                         $node->setNodeTag($subparser->getTag());
  9.                         $rv[] = $node;
in vendor/twig/twig/src/Parser.php -> subparse (line 104)
  1.         $this->importedSymbols = [[]];
  2.         $this->embeddedTemplates = [];
  3.         $this->expressionRefs = new \WeakMap();
  4.         try {
  5.             $body $this->subparse($test$dropNeedle);
  6.             if (null !== $this->parent && null === $body $this->filterBodyNodes($body)) {
  7.                 $body = new EmptyNode();
  8.             }
  9.         } catch (SyntaxError $e) {
  1.     {
  2.         if (null === $this->parser) {
  3.             $this->parser = new Parser($this);
  4.         }
  5.         return $this->parser->parse($stream);
  6.     }
  7.     /**
  8.      * @return void
  9.      */
  1.      * @throws SyntaxError When there was an error during tokenizing, parsing or compiling
  2.      */
  3.     public function compileSource(Source $source): string
  4.     {
  5.         try {
  6.             return $this->compile($this->parse($this->tokenize($source)));
  7.         } catch (Error $e) {
  8.             $e->setSourceContext($source);
  9.             throw $e;
  10.         } catch (\Exception $e) {
  11.             throw new SyntaxError(\sprintf('An exception has been thrown during the compilation of a template ("%s").'$e->getMessage()), -1$source$e);
in vendor/twig/twig/src/Environment.php -> compileSource (line 408)
  1.                 $this->cache->load($key);
  2.             }
  3.             if (!class_exists($clsfalse)) {
  4.                 $source $this->getLoader()->getSourceContext($name);
  5.                 $content $this->compileSource($source);
  6.                 if (!isset($this->hotCache[$name])) {
  7.                     $this->cache->write($key$content);
  8.                     $this->cache->load($key);
  9.                 }
in vendor/twig/twig/src/Template.php -> loadTemplate (line 293)
  1.                 }
  2.             } else {
  3.                 $class $this->env->getTemplateClass($template);
  4.             }
  5.             return $this->env->loadTemplate($class$template$index);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         yield "\t\t\t\t<!-- Filtres Desktop (visible sur lg et plus) -->
  2. <<<<<<< Updated upstream
  3. \t\t\t\t\t<div class=\"d-none d-lg-block\"> <div class=\"filters-left w-100 d-flex gap-4 align-items-center flex-wrap sticky-filters\" data-filter-target=\"filtersContainer\">
  4. \t\t\t\t\t\t";
  5.         // line 106
  6.         yield from $this->load("@SyliusShop/product/_filter_sidebar.html.twig"106)->unwrap()->yield($context);
  7.         // line 107
  8.         yield "\t\t\t\t\t</div>
  9. \t\t\t\t</div>
  10. \t\t\t\t<!-- Bouton Filtre Mobile/Tablette (fixed bottom) -->
in vendor/twig/twig/src/Template.php -> block_content (line 446)
  1.             throw new \LogicException('A block must be a method on a \Twig\Template instance.');
  2.         }
  3.         if (null !== $template) {
  4.             try {
  5.                 yield from $template->$block($context$blocks);
  6.             } catch (Error $e) {
  7.                 if (!$e->getSourceContext()) {
  8.                     $e->setSourceContext($template->getSourceContext());
  9.                 }
  1.         // line 38
  2.         yield "
  3. \t\t\t\t";
  4.         // line 40
  5.         yield from $this->unwrap()->yieldBlock('content'$context$blocks);
  6.         // line 41
  7.         yield "
  8. \t\t\t\t";
  9.         // line 43
in vendor/twig/twig/src/Template.php -> block_body (line 446)
  1.             throw new \LogicException('A block must be a method on a \Twig\Template instance.');
  2.         }
  3.         if (null !== $template) {
  4.             try {
  5.                 yield from $template->$block($context$blocks);
  6.             } catch (Error $e) {
  7.                 if (!$e->getSourceContext()) {
  8.                     $e->setSourceContext($template->getSourceContext());
  9.                 }
  1.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("sylius_shop_cart_summary");
  2.         yield "\">
  3. \t\t";
  4.         // line 30
  5.         yield from $this->unwrap()->yieldBlock('body'$context$blocks);
  6.         // line 50
  7.         yield "
  8. \t\t";
  9.         // line 51
  10.         yield from $this->unwrap()->yieldBlock('javascripts'$context$blocks);
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1.     {
  2.         $context += $this->env->getGlobals();
  3.         $blocks array_merge($this->blocks$blocks);
  4.         try {
  5.             yield from $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         $context["prefixes"] = ["sylius_shop.product_index"];
  2.         // line 21
  3.         $context["products"] = ((array_key_exists("products"$context)) ? ((isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'21$this->source); })())) : (((array_key_exists("resources"$context)) ? (CoreExtension::getAttribute($this->env$this->source, (isset($context["resources"]) || array_key_exists("resources"$context) ? $context["resources"] : (function () { throw new RuntimeError('Variable "resources" does not exist.'21$this->source); })()), "data", [], "any"falsefalsefalse21)) : ([]))));
  4.         // line 1
  5.         $this->parent $this->load("@SyliusShop/shared/layout/base.html.twig"1);
  6.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  7.         
  8.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  9.         
  10.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1.     {
  2.         $context += $this->env->getGlobals();
  3.         $blocks array_merge($this->blocks$blocks);
  4.         try {
  5.             yield from $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context$blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 373)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         yield from $this->template->yieldBlock($name$context);
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     /**
  8.      * @return void
  9.      */
  1.      * @throws SyntaxError  When an error occurred during compilation
  2.      * @throws RuntimeError When an error occurred during rendering
  3.      */
  4.     public function render($name, array $context = []): string
  5.     {
  6.         return $this->load($name)->render($context);
  7.     }
  8.     /**
  9.      * Displays a template.
  10.      *
  1.         if (null !== $block) {
  2.             return $this->container->get('twig')->load($view)->renderBlock($block$parameters);
  3.         }
  4.         return $this->container->get('twig')->render($view$parameters);
  5.     }
  6.     private function doRender(string $view, ?string $block, array $parameters, ?Response $responsestring $method): Response
  7.     {
  8.         $content $this->doRenderView($view$block$parameters$method);
  1.         return $this->container->get('twig')->render($view$parameters);
  2.     }
  3.     private function doRender(string $view, ?string $block, array $parameters, ?Response $responsestring $method): Response
  4.     {
  5.         $content $this->doRenderView($view$block$parameters$method);
  6.         $response ??= new Response();
  7.         if (200 === $response->getStatusCode()) {
  8.             foreach ($parameters as $v) {
  9.                 if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1.      * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2.      * Forms found in parameters are auto-cast to form views.
  3.      */
  4.     protected function render(string $view, array $parameters = [], ?Response $response null): Response
  5.     {
  6.         return $this->doRender($viewnull$parameters$response__FUNCTION__);
  7.     }
  8.     /**
  9.      * Renders a block in a view.
  10.      *
AbstractController->render() in src/Controller/ProductController.php (line 288)
  1.                 'page' => $result['page'],
  2.                 'total' => $result['total'],
  3.             ]);
  4.         }
  5.         return $this->render('@SyliusShop/product/index.html.twig', [
  6.             'products' => $result['products'],
  7.             'facets' => $result['facets'],
  8.             'facetLabels' => $result['facetLabels'] ?? [],
  9.             'filters' => $filters,
  10.             'total' => $result['total'],
in vendor/symfony/http-kernel/HttpKernel.php -> indexByTaxon (line 183)
  1.         $this->dispatcher->dispatch($eventKernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller $event->getController();
  3.         $arguments $event->getArguments();
  4.         // call controller
  5.         $response $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this$request$type$response$event);
  9.             $this->dispatcher->dispatch($eventKernelEvents::VIEW);
  1.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2.         $this->requestStack->push($request);
  3.         $response null;
  4.         try {
  5.             return $response $this->handleRaw($request$type);
  6.         } catch (\Throwable $e) {
  7.             if ($e instanceof \Error && !$this->handleAllThrowables) {
  8.                 throw $e;
  9.             }
  1.         if (!$this->handlingHttpCache) {
  2.             $this->resetServices true;
  3.         }
  4.         try {
  5.             return $this->getHttpKernel()->handle($request$type$catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.     ) {
  2.     }
  3.     public function run(): int
  4.     {
  5.         $response $this->kernel->handle($this->request);
  6.         if (Kernel::VERSION_ID >= 60400) {
  7.             $response->send(false);
  8.             if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 32)
  1. $app $app(...$args);
  2. exit(
  3.     $runtime
  4.         ->getRunner($app)
  5.         ->run()
  6. );
require_once('/home/forges/subdomains/preprod/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5.     return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 12:17:28 deprecation User Deprecated: The Liip\ImagineBundle\Templating\FilterTrait trait is deprecated since version 2.7 and will be removed in 3.0; use Twig instead.
{
    "exception": {}
}
INFO 12:17:28 deprecation User Deprecated: The Liip\ImagineBundle\Templating\FilterExtension class is deprecated since version 2.7 and will be removed in 3.0; configure "liip_imagine.twig.mode" to "lazy" instead.
{
    "exception": {}
}
INFO 12:17:28 doctrine Connecting with parameters {params}
{
    "params": {
        "driver": "pdo_mysql",
        "idle_connection_ttl": 600,
        "host": "127.0.0.1",
        "port": 3306,
        "user": "forges",
        "password": "<redacted>",
        "driverOptions": [],
        "defaultTableOptions": {
            "collation": "utf8mb4_unicode_ci"
        },
        "dbname": "forges-preprod",
        "charset": "utf8mb4"
    }
}
INFO 12:17:28 deprecation User Deprecated: Method "Payum\Core\Model\DetailsAggregateInterface::getDetails()" might add "?object" as a native return type declaration in the future. Do the same in implementation "Sylius\Bundle\PayumBundle\Model\PaymentSecurityToken" now to avoid errors or add an explicit @return annotation to suppress this message.
{
    "exception": {}
}
INFO 12:17:29 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "b9da84"
    },
    "request_uri": "https://forges-preprod.kwantic.dev/_profiler/b9da84",
    "method": "GET"
}
DEBUG 12:17:29 security Checking for authenticator support.
{
    "firewall_name": "shop",
    "authenticators": 3
}
DEBUG 12:17:29 security Checking support on authenticator.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 security Authenticator does not support the request.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 security Checking support on authenticator.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 security Authenticator does not support the request.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 security Checking support on authenticator.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 security Authenticator does not support the request.
{
    "firewall_name": "shop",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 12:17:29 doctrine Executing statement: SELECT t0.code AS code_1, t0.name AS name_2, t0.color AS color_3, t0.description AS description_4, t0.enabled AS enabled_5, t0.hostname AS hostname_6, t0.created_at AS created_at_7, t0.updated_at AS updated_at_8, t0.id AS id_9, t0.theme_name AS theme_name_10, t0.tax_calculation_strategy AS tax_calculation_strategy_11, t0.contact_email AS contact_email_12, t0.contact_phone_number AS contact_phone_number_13, t0.skipping_shipping_step_allowed AS skipping_shipping_step_allowed_14, t0.skipping_payment_step_allowed AS skipping_payment_step_allowed_15, t0.account_verification_required AS account_verification_required_16, t0.shipping_address_in_checkout_required AS shipping_address_in_checkout_required_17, t0.default_locale_id AS default_locale_id_18, t19.code AS code_20, t19.created_at AS created_at_21, t19.updated_at AS updated_at_22, t19.id AS id_23, t0.base_currency_id AS base_currency_id_24, t25.code AS code_26, t25.created_at AS created_at_27, t25.updated_at AS updated_at_28, t25.id AS id_29, t0.default_tax_zone_id AS default_tax_zone_id_30, t0.menu_taxon_id AS menu_taxon_id_31, t0.shop_billing_data_id AS shop_billing_data_id_32, t0.channel_price_history_config_id AS channel_price_history_config_id_33 FROM sylius_channel t0 INNER JOIN sylius_locale t19 ON t0.default_locale_id = t19.id INNER JOIN sylius_currency t25 ON t0.base_currency_id = t25.id WHERE t0.hostname = ? AND t0.enabled = ? ORDER BY t0.id ASC LIMIT 1 (parameters: {params}, types: {types})
{
    "sql": "SELECT t0.code AS code_1, t0.name AS name_2, t0.color AS color_3, t0.description AS description_4, t0.enabled AS enabled_5, t0.hostname AS hostname_6, t0.created_at AS created_at_7, t0.updated_at AS updated_at_8, t0.id AS id_9, t0.theme_name AS theme_name_10, t0.tax_calculation_strategy AS tax_calculation_strategy_11, t0.contact_email AS contact_email_12, t0.contact_phone_number AS contact_phone_number_13, t0.skipping_shipping_step_allowed AS skipping_shipping_step_allowed_14, t0.skipping_payment_step_allowed AS skipping_payment_step_allowed_15, t0.account_verification_required AS account_verification_required_16, t0.shipping_address_in_checkout_required AS shipping_address_in_checkout_required_17, t0.default_locale_id AS default_locale_id_18, t19.code AS code_20, t19.created_at AS created_at_21, t19.updated_at AS updated_at_22, t19.id AS id_23, t0.base_currency_id AS base_currency_id_24, t25.code AS code_26, t25.created_at AS created_at_27, t25.updated_at AS updated_at_28, t25.id AS id_29, t0.default_tax_zone_id AS default_tax_zone_id_30, t0.menu_taxon_id AS menu_taxon_id_31, t0.shop_billing_data_id AS shop_billing_data_id_32, t0.channel_price_history_config_id AS channel_price_history_config_id_33 FROM sylius_channel t0 INNER JOIN sylius_locale t19 ON t0.default_locale_id = t19.id INNER JOIN sylius_currency t25 ON t0.base_currency_id = t25.id WHERE t0.hostname = ? AND t0.enabled = ? ORDER BY t0.id ASC LIMIT 1",
    "params": {
        "1": "forges-preprod.kwantic.dev",
        "2": 1
    },
    "types": {
        "1": 2,
        "2": 5
    }
}
DEBUG 12:17:29 doctrine Executing statement: SELECT t0.code AS code_1, t0.name AS name_2, t0.color AS color_3, t0.description AS description_4, t0.enabled AS enabled_5, t0.hostname AS hostname_6, t0.created_at AS created_at_7, t0.updated_at AS updated_at_8, t0.id AS id_9, t0.theme_name AS theme_name_10, t0.tax_calculation_strategy AS tax_calculation_strategy_11, t0.contact_email AS contact_email_12, t0.contact_phone_number AS contact_phone_number_13, t0.skipping_shipping_step_allowed AS skipping_shipping_step_allowed_14, t0.skipping_payment_step_allowed AS skipping_payment_step_allowed_15, t0.account_verification_required AS account_verification_required_16, t0.shipping_address_in_checkout_required AS shipping_address_in_checkout_required_17, t0.default_locale_id AS default_locale_id_18, t19.code AS code_20, t19.created_at AS created_at_21, t19.updated_at AS updated_at_22, t19.id AS id_23, t0.base_currency_id AS base_currency_id_24, t25.code AS code_26, t25.created_at AS created_at_27, t25.updated_at AS updated_at_28, t25.id AS id_29, t0.default_tax_zone_id AS default_tax_zone_id_30, t0.menu_taxon_id AS menu_taxon_id_31, t0.shop_billing_data_id AS shop_billing_data_id_32, t0.channel_price_history_config_id AS channel_price_history_config_id_33 FROM sylius_channel t0 INNER JOIN sylius_locale t19 ON t0.default_locale_id = t19.id INNER JOIN sylius_currency t25 ON t0.base_currency_id = t25.id WHERE t0.code = ? LIMIT 1 (parameters: {params}, types: {types})
{
    "sql": "SELECT t0.code AS code_1, t0.name AS name_2, t0.color AS color_3, t0.description AS description_4, t0.enabled AS enabled_5, t0.hostname AS hostname_6, t0.created_at AS created_at_7, t0.updated_at AS updated_at_8, t0.id AS id_9, t0.theme_name AS theme_name_10, t0.tax_calculation_strategy AS tax_calculation_strategy_11, t0.contact_email AS contact_email_12, t0.contact_phone_number AS contact_phone_number_13, t0.skipping_shipping_step_allowed AS skipping_shipping_step_allowed_14, t0.skipping_payment_step_allowed AS skipping_payment_step_allowed_15, t0.account_verification_required AS account_verification_required_16, t0.shipping_address_in_checkout_required AS shipping_address_in_checkout_required_17, t0.default_locale_id AS default_locale_id_18, t19.code AS code_20, t19.created_at AS created_at_21, t19.updated_at AS updated_at_22, t19.id AS id_23, t0.base_currency_id AS base_currency_id_24, t25.code AS code_26, t25.created_at AS created_at_27, t25.updated_at AS updated_at_28, t25.id AS id_29, t0.default_tax_zone_id AS default_tax_zone_id_30, t0.menu_taxon_id AS menu_taxon_id_31, t0.shop_billing_data_id AS shop_billing_data_id_32, t0.channel_price_history_config_id AS channel_price_history_config_id_33 FROM sylius_channel t0 INNER JOIN sylius_locale t19 ON t0.default_locale_id = t19.id INNER JOIN sylius_currency t25 ON t0.base_currency_id = t25.id WHERE t0.code = ? LIMIT 1",
    "params": {
        "1": "WEB-EU"
    },
    "types": {
        "1": 2
    }
}
DEBUG 12:17:29 doctrine Executing statement: SELECT t0.code AS code_1, t0.created_at AS created_at_2, t0.updated_at AS updated_at_3, t0.id AS id_4 FROM sylius_locale t0 INNER JOIN sylius_channel_locales ON t0.id = sylius_channel_locales.locale_id WHERE sylius_channel_locales.channel_id = ? (parameters: {params}, types: {types})
{
    "sql": "SELECT t0.code AS code_1, t0.created_at AS created_at_2, t0.updated_at AS updated_at_3, t0.id AS id_4 FROM sylius_locale t0 INNER JOIN sylius_channel_locales ON t0.id = sylius_channel_locales.locale_id WHERE sylius_channel_locales.channel_id = ?",
    "params": {
        "1": 1
    },
    "types": {
        "1": 1
    }
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\ResourceBundle\Storage\CookieStorage::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\ResourceBundle\\Storage\\CookieStorage::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\ApiBundle\EventSubscriber\KernelRequestEventSubscriber::validateApi".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\ApiBundle\\EventSubscriber\\KernelRequestEventSubscriber::validateApi"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Resource\Symfony\EventListener\AddFormatListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Resource\\Symfony\\EventListener\\AddFormatListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "ApiPlatform\Symfony\EventListener\AddFormatListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "ApiPlatform\\Symfony\\EventListener\\AddFormatListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\ShopBundle\EventListener\NonChannelLocaleListener::restrictRequestLocale".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\ShopBundle\\EventListener\\NonChannelLocaleListener::restrictRequestLocale"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "FOS\RestBundle\EventListener\BodyListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "FOS\\RestBundle\\EventListener\\BodyListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\LocaleBundle\Listener\RequestLocaleSetter::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\LocaleBundle\\Listener\\RequestLocaleSetter::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "ApiPlatform\Symfony\EventListener\ReadListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "ApiPlatform\\Symfony\\EventListener\\ReadListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\CoreBundle\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\CoreBundle\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "ApiPlatform\Symfony\EventListener\DeserializeListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "ApiPlatform\\Symfony\\EventListener\\DeserializeListener::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\AdminBundle\EventListener\AdminFilterSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\AdminBundle\\EventListener\\AdminFilterSubscriber::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Sylius\Bundle\CoreBundle\Checkout\CheckoutResolver::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Sylius\\Bundle\\CoreBundle\\Checkout\\CheckoutResolver::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.request" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelRequest"
}
DEBUG 12:17:29 event Notified event "kernel.controller" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelController"
}
DEBUG 12:17:29 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 12:17:29 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\IsSignatureValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\IsSignatureValidAttributeListener::onKernelControllerArguments"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "ContainerRjvihVP\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerRjvihVP\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 12:17:29 event Notified event "kernel.controller_arguments" to listener "Sylius\Bundle\CoreBundle\EventListener\CircularDependencyBreakingErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Sylius\\Bundle\\CoreBundle\\EventListener\\CircularDependencyBreakingErrorListener::onControllerArguments"
}

Stack Trace

SyntaxError
Twig\Error\SyntaxError:
Unexpected "endif" tag (expecting closing tag for the "for" tag defined near line 364) in "@SyliusShop/product/_filter_sidebar.html.twig" at line 451.

  at templates/bundles/SyliusShopBundle/product/_filter_sidebar.html.twig:451
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/ForTokenParser.php:47)
  at Twig\TokenParser\ForTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:224)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/IfTokenParser.php:51)
  at Twig\TokenParser\IfTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:224)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/IfTokenParser.php:42)
  at Twig\TokenParser\IfTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:224)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/IfTokenParser.php:42)
  at Twig\TokenParser\IfTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:224)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/Parser.php:104)
  at Twig\Parser->parse()
     (vendor/twig/twig/src/Environment.php:558)
  at Twig\Environment->parse()
     (vendor/twig/twig/src/Environment.php:589)
  at Twig\Environment->compileSource()
     (vendor/twig/twig/src/Environment.php:408)
  at Twig\Environment->loadTemplate()
     (vendor/twig/twig/src/Template.php:293)
  at Twig\Template->load()
     (var/cache/dev/twig/07/079932b1552f012cc66db20b0ebb9973.php:278)
  at __TwigTemplate_9f202b0c90216d9df8da4b6e6d780615->block_content()
     (vendor/twig/twig/src/Template.php:446)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/1a/1a7047910571431644acc828754f64d9.php:247)
  at __TwigTemplate_2155ccd76b8c87b2c2957963acf1d48c->block_body()
     (vendor/twig/twig/src/Template.php:446)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/1a/1a7047910571431644acc828754f64d9.php:106)
  at __TwigTemplate_2155ccd76b8c87b2c2957963acf1d48c->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (var/cache/dev/twig/07/079932b1552f012cc66db20b0ebb9973.php:60)
  at __TwigTemplate_9f202b0c90216d9df8da4b6e6d780615->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:358)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:373)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/ProductController.php:288)
  at App\Controller\ProductController->indexByTaxon()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/home/forges/subdomains/preprod/vendor/autoload_runtime.php')
     (public/index.php:5)