Hallo zusammen,
ich versuche ein Block auf „header.twig.html“ komplett auszukommentieren bzw. die Logik des Blocks nicht ausführen, wenn das Display ein bestimmten breakpoint erreicht.
Auf „base.twig.html“ befindet sich den Block mit den Breakpoints. (Bring mir nicht so viel weiter, da meine Kentnisse im Bereich nicht so gut sind…)
{% block base_script_breakpoints %}
{# Register the available viewport breakpoints the window.breakpoints object #}
<script>
{% set breakpoint = {
'xs': theme_config('breakpoint.sm'),
'sm': theme_config('breakpoint.md'),
'md': theme_config('breakpoint.lg'),
'lg': theme_config('breakpoint.xl')
} %}
window.breakpoints = {{ breakpoint|json_encode()|raw }};
</script>
{% endblock %}
Leider finde ich keinen Weg um die Größe des Displays durch breakpoinst abzurufen.
Meine Idee wäre:
{# TODO: make this block disappear between breakpoint-xs & lg, so it only adds 1 item to cart #}
(da ich dieses Block auf zwei verschiedenen twig. Dateien abrufe)
{% if window.breakpoint == 'lg' or (weitere breakpoints) %}
{% block layout_header_actions_cart %}
<div class="col-auto hide-md">
<div class="header-cart"
data-offcanvas-cart="true">
<a class="btn header-cart-btn header-actions-btn"
href="{{ path('frontend.checkout.cart.page') }}"
data-cart-widget="true"
title="{{ 'checkout.cartTitle'|trans|striptags }}"
aria-label="{{ 'checkout.cartTitle'|trans|striptags }}">
{% sw_include '@Storefront/storefront/layout/header/actions/cart-widget.html.twig' %}
</a>
</div>
</div>
{% endblock %}
{% else %}
{% block layout_header_actions_cart %}
{#Leer um Logic nicht ausführen#}
{% endblock %}
{% endif %}
Ich habe auch versucht mit CSS und breakpoints ein display: none zu nutzen. Leider wird die Logik trotzdem ausgeführt. Nur, wenn ich den Inhalt des Blocks lösche, funktioniert genau was ich will.
Grundsätzlich, hat jemand eine Idee wie man mit einem „if“ statement oder so ein breakpoint unter einem Twig Datei abrufen kann?
Ich wäre MEGA dankbar für any feedback