1

テーマ フォルダを整理しようとしています。このフォルダには、多数のビューのノード テーマ オーバーライドがあります。基本的に、私は 2 つの異なるスタイルを持っていますが、多かれ少なかれ、すべて同じに見えるようにしたいと考えています。

これを行うことができる template.php の方法はありますか? そして、最善の方法は何ですか?

テーマの hook_preprocess_node 関数でこのコードを試しました:

switch($vars['view']->name) {
 case 'taxonomy_term' :
   switch($vars['view']->current_display) {
     case 'page' :
       array_push($vars['template_files'], 'list-view');
     default :
       break;
   }
   break;
 default :
   break;
}

そして、テーマ開発者を見ると、そこに list-view.tpl.php ファイルが表示されますが、実際にはテーマディレクトリからそのファイルを使用していません。私は何が欠けていますか?

4

2 に答える 2

3

theme()でわかるように、 Drupal はdrupal_discover_template()に従って存在する場合にのみ、実際にテンプレートを使用します。

それが事実であるかどうかを理解しようとする必要があります。

  • includes/theme.incの theme() 関数にデバッグ コードを配置してdrupal_discover_template()、さまざまなテンプレート呼び出しに対して何が返されるかを確認します。

それを見つけることができますか?そうでない場合:

  • デバッグ コードを配置drupal_discover_template()して、Drupal がもはやテンプレートではないと判断する場所を見つけます。

私の直感では、テンプレート ファイルが存在するが、template_files変数に追加していないサブディレクトリが原因であると言っています

于 2011-03-11T14:46:10.330 に答える
1

tpl.php ファイルを取得するには、キャッシュを再構築する必要があります。

于 2011-03-10T19:25:51.680 に答える