it-swarm.com.de

Bereich ausblenden, wenn das Blockmenü leer ist

Ich habe das Hauptmenü der 2. Ebene in einem Block in der Seitenleiste erhalten, drupal 8 verbirgt das Menü (und den Block) korrekt, wenn der Benutzer eine Seite durchsucht, die nicht in diesem Menü, sondern im Thema enthalten ist zeigt weiterhin den leeren Bereich an. Die Bedingung {% wenn page.region%} ist wahr. Gibt es eine Möglichkeit, dieses Problem zu lösen?

4
Stefano Fiaschi

Es ist besser, Konstruktion zu verwenden

{% if page.region|render|striptags|trim|length > 0 %} ... {% endif %}

So können Sie überprüfen, ob Inhalte vorhanden sind oder nicht.

3
Ian

Wenn Sie das Modul menu_block verwenden, dieser Patch behebt das Problem, dass eine Region angezeigt wird, auch wenn für ein Menü keine Unterelemente vorhanden sind. Nur auf Menüblock Version 8.x-1.5 getestet.

1

Mit {% if page.region|render|striptags %} Können Sie sicherstellen, dass die Regionen tatsächlich Inhalt haben. Siehe auch die Diskussion hier: [meta] Themes überprüfen renderbare Arrays bei der Bestimmung der Sichtbarkeit nicht ordnungsgemäß .

0
MidnightMotion

Ich habe es so gemacht, um die Anzahl der Renderings zu reduzieren.

{% set render_sidebar_first = page.sidebar_first|render %}
{% if render_sidebar_first and render_sidebar_first|striptags|trim|length > 0 %}
  {% block sidebar_first %}
    <aside class="{{ sidebar_class }}" role="complementary">
        {{ render_sidebar_first }}
    </aside>
  {% endblock %}
{% endif %}
0
knice