web-dev-qa-db-ja.com

特定の地域で特定のテンプレートを使用するにはどうすればよいですか?

現在Drupal 7のZenサブテーマのプロジェクト)に取り組んでいます。各リージョンはHTML/PHPテンプレートとして「region.tpl.php」を使用しています。 "foo"。このリージョンには、他のリージョンとは異なるHTML/PHPが必要です。

Drupalカスタムテンプレート「region--foo.tpl.php」をデフォルトの「region.tpl.php」の代わりに使用する方法)

4
Jan Werkhoven

Drupalは既にregion--name.tpl.phpのテーマフックの提案を追加しましたが、追加できない場合は、テーマのtemplate.phpファイルに前処理関数を追加できます。

function MYTHEME_preprocess_region(&$vars) {
  $vars['theme_hook_suggestions'][] = 'region__' . $vars['region'];
}

Drupalのキャッシュをクリアすると、新しいテンプレートファイルがそのリージョンで使用されるようになります。おそらく、コアのregion.tpl.phpファイルのコピーがテーマフォルダーのどこかに必要になるか、テーマレジストリがカスタムファイルを取得しない可能性があることに注意してください。

7
Clive