特定のページにこのリージョンのブロックを表示しないように、リージョンを無効にしたいです。これが欲しいのは、私がいくつかのブロック(20以上)を持っているので、この場合、各ブロックに入力し、どのページで表示しないようにするかを構成する必要があるためです。それができるのですが、このタスクをより実用的な方法で、またはプログラムで作成するための方法が存在するかどうかを知りたいだけです。
Drupal 6.を使用しています。
最も簡単な方法は、テーマのtemplate.phpで非表示にする領域を設定解除することです。例えば:
function YOUR_THEME_preprocess_page(&$vars) {
if (drupal_is_front_page())
unset($vars['left']);
}
コンテキストモジュール は、ブロックを広範囲に使用するサイトでブロックを制御するための非常に便利な方法です。ブロックを表示および非表示にするコンテキストを定義できます。これにより、ブロックのロードが停止されるため、パフォーマンスが向上します。
ブロックが表示される場所とタイミングを簡単に定義できます。ブロックごとに定義するのではなく、コンテキストごとに表示されるブロックを定義します。
このビデオ は物事をうまく説明しているようです。
Region Visibility モジュールを試してみてください。
彼らが言うには:
このモジュールを使用すると、特権ユーザーは、Drupalコアのブロック表示設定と同様に、ロールまたはページ固有の表示設定をリージョンに設定できます。
自分で試したわけではありませんが、役に立ちそうです。