web-dev-qa-db-ja.com

ブロックメニューが空のときに領域を非表示にする

サイドバーのブロックにある2番目のレベルのメインメニューを取得しました。drupal 8は、ユーザーがこのメニューにないページを参照すると、メニュー(およびブロック)を正しく非表示にしますが、テーマは空の領域が引き続き表示されます。条件{%if page.region%}がtrueです。この問題を解決する方法はありますか?

4
Stefano Fiaschi

建設を使用することをお勧めします

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

そのため、コンテンツがあるかどうかを確認できます。

3
Ian

私は menu_block モジュールを使用しています このパッチ は、メニューのサブアイテムがない場合でも領域が表示される問題を修正します。メニューブロックバージョン8.x-1.5でのみテストされています。

1

{% if page.region|render|striptags %}を使用して、リージョンに実際にコンテンツがあることを確認できます。こちらの説明もご覧ください: [meta]テーマは、可視性を決定するときにレンダリング可能な配列を不適切にチェックします

0
MidnightMotion

レンダーの数を減らすために、私はこのようにしました。

{% 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