2

Drupal 7 では、ユーザー ページのコンテンツ領域にブロックを追加しました。指定してこれを行いました

user/*

表示設定 -> ページ -> 特定のページにブロックを表示 -> リストされたページのみ設定。

ただし、ワイルドカードは何でも受け入れるため、ユーザーの編集ページにブロックが表示されるようになりました。

次のような単一の数字のワイルドカードはありますか

user/%integer

ブロックがユーザービューページにのみ表示されるように、ここで使用できますか?

Drupal 7 のユーザー編集ページでこのブロックを非表示にするにはどうすればよいですか?

4

2 に答える 2

3

PHP フィルター モジュールを有効にして、ブロックの表示設定ページで php を入力できるようにします。そこで、次のような引数を確認できます

<?php 
if(arg(0) == 'user' && arg(2) != 'edit' )
return true;
else 
return false 
?> 
于 2012-04-16T03:43:29.223 に答える
1

最近では、別の代替手段が利用可能です... PHP フィルターを有効にする必要はありません(可能な限り回避する必要があります) ...ルール ブロックの可視性モジュールを使用するだけです。プロジェクトページからの引用は次のとおりです。

ルール ブロックの可視性モジュールを使用すると、ルールコンポーネントを使用してブロックの可視性を制御できます。これにより、Drupal の管理者と開発者は、Drupal が提供するデフォルトの表示オプションに加えて、Web サイトにブロックを表示するタイミングを非常に柔軟に制御できます。

一般的な考え方は、ルールでそれを行うことができれば、それを使用してブロックの可視性を制御できるため、可能性は無限大です。

1 か月以上前に登録したユーザーに対してのみブロックを表示する必要がありますか?

おそらく、平日の午前 8 時から午後 5 時までの間だけ表示する必要があるブロックがありますか?

現在の気象条件に基づいてブロックを表示または非表示にするのはどうですか?

これはすべて、ルール ブロックの可視性を使用して行うことができます。

それで、上記の「ルールでそれを行うことができれば、それを使用してブロックの可視性を制御できます」に従って、誰かが次のような URL を使用する状況をルールがインターセプトするように質問を減らしました(ここを任意の/user/*/editものに置き換えます)。*の許容値uid)。Rulesでそれを行う方法に慣れていない場合は、「モジュールのアクセス許可をより細かくする方法」という質問に対する私の回答を見てください(サンプルに含まれる正規表現に注意してください)。私がそこに含めたルール)。

于 2016-02-08T15:56:25.980 に答える