これまで、URLまたはノードのタイプに基づいて、特定のページが使用するページテンプレートを常にハードコーディングしてきました。
本当に役立つのは、ノード編集フォームで、使用するtplファイルを選択する方法がある場合です。これにより、ユーザーはさまざまなページレイアウト間を自由にフリックできます。
誰かがこの問題に取り組む良い方法、またはそれに対する完全な解決策を知っていますか?
これまで、URLまたはノードのタイプに基づいて、特定のページが使用するページテンプレートを常にハードコーディングしてきました。
本当に役立つのは、ノード編集フォームで、使用するtplファイルを選択する方法がある場合です。これにより、ユーザーはさまざまなページレイアウト間を自由にフリックできます。
誰かがこの問題に取り組む良い方法、またはそれに対する完全な解決策を知っていますか?
ThemeKeyを使用すると、パスまたはその他の基準に基づいてテーマをロードできます。template.phpのプリプロセッサ関数を利用するなどの他の方法を使用して、hook_form_alterでフックし、ファイルを切り替える方法を考え出すことができます。
最終的にテンプレートファイルの新しい語彙を追加し(私の場合、このVIDは2です)、これをtemplate.phpのページプリプロセッサにロールインしました。
function phptemplate_preprocess_page(&$vars) {
if (count($vars[node]->taxonomy)>0)
foreach ($vars[node]->taxonomy as $term)
$template = $term->vid == 2 ? $term->name : NULL;
if ($template) $vars['template_files'][] = "template-".preg_replace("/[^a-zA-Z0-9s]/", "", strtolower($template));
}
ここで、という分類用語のノードがある場合、それはテンプレートファイルとしてA Green Page!
検索されます。template-agreenpage.tpl.php
この機能も必要だったので、ノードテンプレートに対してこれを実行するモジュールを作成しました。あなたはここでそれを見つけることができます:http://drupal.org/project/template-picker