J'ai obtenu le menu principal de 2e niveau dans un bloc dans la barre latérale, drupal 8 masque correctement le menu (et le bloc) lorsque l'utilisateur parcourt une page qui n'est pas dans ce menu, mais le thème continue d'afficher la région vide. La condition {% if page.region%} est vraie. existe-t-il un moyen de résoudre ce problème?
Il vaut mieux utiliser la construction
{% if page.region|render|striptags|trim|length > 0 %} ... {% endif %}
Vous pouvez donc vérifier s'il y a du contenu ou non.
Si vous utilisez le module menu_block , ce patch résoudra le problème d'une région qui apparaît même lorsqu'il n'y a pas de sous-éléments pour un menu. Testé uniquement sur le bloc de menu version 8.x-1.5.
Vous pouvez utiliser {% if page.region|render|striptags %}
pour vous assurer que les régions contiennent bien du contenu. Voir aussi la discussion ici: [meta] Les thèmes vérifient incorrectement les tableaux rendables lors de la détermination de la visibilité .
Je l'ai fait de cette façon pour réduire le nombre de rendus.
{% 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 %}