2

これまで、URLまたはノードのタイプに基づいて、特定のページが使用するページテンプレートを常にハードコーディングしてきました。

本当に役立つのは、ノード編集フォームで、使用するtplファイルを選択する方法がある場合です。これにより、ユーザーはさまざまなページレイアウト間を自由にフリックできます。

誰かがこの問題に取り組む良い方法、またはそれに対する完全な解決策を知っていますか?

4

3 に答える 3

2

ThemeKeyを使用すると、パスまたはその他の基準に基づいてテーマをロードできます。template.phpのプリプロセッサ関数を利用するなどの他の方法を使用して、hook_form_alterでフックし、ファイルを切り替える方法を考え出すことができます。

于 2010-08-02T16:02:06.967 に答える
1

最終的にテンプレートファイルの新しい語彙を追加し(私の場合、この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

于 2010-08-06T12:35:56.880 に答える
0

この機能も必要だったので、ノードテンプレートに対してこれを実行するモジュールを作成しました。あなたはここでそれを見つけることができます:http://drupal.org/project/template-picker

于 2013-05-25T20:56:10.137 に答える