DrupalのURLに応じたテンプレート命名規則はURLエイリアスではそのままではうまく動作しない。ここではURLエイリアスに応じたテンプレートを使うための方法を紹介します。
参考記事「Different page templates depending on URL aliases」
http://drupal.org/node/139766
Drupal 6においては以下のようなようなコードをtemplate.phpに記述すればOKということです。
- <?php
- function phptemplate_preprocess_page(&$vars) {
- if (module_exists('path')) {
- if ($alias != $_GET['q']) {
- $template_filename = 'page';
- $template_filename = $template_filename . '-' . $path_part;
- $vars['template_files'][] = $template_filename;
- }
- }
- }
- }
- ?>
これにより、たとえば http://www.example.com/node/1のURLエイリアスがhttp://www.example.com/movieの場合に、page-movie.tpl.phpというページテンプレートファイルを使うことができるようになります。
また、この例の場合には適用されるテンプレートは優先順の高いものから順に、以下のようになります。
- page-movie.tpl.php (今回の紹介するコードでこれが有効になる)
- page-node-1.tpl.php
- page-node.tpl.php
- page.tpl.php

