web-dev-qa-db-ja.com

/ user / * / editではなく/ user / *ページにブロックを表示

Drupal 8の管理から、ブロック(カスタムモジュールから作成されたブロック)を/ user/*ページに表示するように構成しました。

enter image description here

できます;このブロックは/ user/*および/ user/*/editページにあります。ここで、/ user/*/editページ(編集モード)ではなく、/ user/*ページ(表示モード)からのみブロックを表示したいと思います。

Drupal管理ページから実行できますか? "!/ user/*/edit"を追加してテストしましたが、効果はありません。

enter image description here

できない場合、カスタムモジュールからどうすればよいですか?

6
matthieu lopez

このモジュールを使用する場合、感嘆符プレフィックスはパスを除外するために機能します: https://www.drupal.org/project/block_exclude_pages

7
John

Drupal 8の場合は ルート条件モジュール をインストールし、entity.user.canonical条件を使用します。

1
Chris Snyder

drupal 7ユーザーの場合、 Context モジュールを使用して、ページをパス/ user/*および〜/ user/*/edit /に追加するだけで、編集ページを除外できます。

0
Lardi

独自のカスタムブロックプラグインの場合は、ノード編集ページでビルド関数にnullを返させることができます。

0
oknate

ブロックを表示する正確なルート(ページ)を指定できる Route Condition というモジュールがあります。したがって、ユーザープロファイルページの場合、ルートはuser.entity.canonical(実際にはモジュールページの例です。

0
acrosman