Drupalのページテンプレートは提案システムで機能します。現在のURLに基づいて、可能なテンプレートファイルの配列が作成されます。配列を(逆の順序で)ループして、存在するテンプレートファイルを探します。最初に見つけたものを使用します。
drupalのテーマシステムは、テンプレートの提案を変更するためのフックを提供します。template.phpを開いて検索します。
function phptemplate_preprocess_page(&$vars) {
$ vars変数は、提案、具体的には$vars['template_files']を含むものです。
デフォルトでは、利用可能なページ候補は次のとおりです。
- page.tpl.php
- page-node.tpl.php
- page-node- [node_id] .tpl.php
私が知る限り、page-node- [node_type] .tpl.phpはデフォルトでは機能しないため、この機能に追加するようにpreprocess_pageテンプレートをすでに変更している可能性があります。
ただし、より具体的なテンプレートを追加したい場合は、次のようにすることができます...
function phptemplate_preprocess_page(&$variables) {
if ($variables['node']->type != "") {
$variables['template_files'][] = "page-node-" . $variables['node']->type;
$variables['template_files'][] = "page-node-" . $variables['node']->type . "-" . $variables['node']->nid;
}
}
これにより、次のテンプレート提案の階層が可能になります
- page.tpl.php
- page-node.tpl.php
- page-node- [node_id] .tpl.php
- page-node- [node_type] .tpl.php
- ページ-ノード-[node_type]-[node_id].tpl.php