Display Suiteがインストールされている場合、コンテンツタイプの[ディスプレイの管理]タブにテンプレートの候補が表示されます。
可能なテンプレートの提案は次のとおりです。
- ds-1col--node.tpl.php
- ds-1col--node-page.tpl.php
- ds-1col--node-page-search-result.tpl.php
テンプレートがanyコンテンツタイプのすべての「検索結果」ビューモードに適用されるようにしたいので、これらのどれも私が達成したいことには合いません。だから私のテンプレートの提案は次のようになります:
ds-1col--search-result.tpl.php
しかし、それはデフォルトで受け入れられていないようです。 このテンプレートの提案を追加するためにどのフックを使用できますか?hook_preprocess_node
を考えていて、独自のテンプレートの提案をtheme_hook_suggestions
に追加していましたが、機能しなかったため機能しませんでしたsearch_resultビューモードが適用されているノードタイプに関する提案を使用します。テンプレートはsearch_resultビューモード設定のないものでのみ使用されていましたが、それでも$ contentなどの通常のnode.tpl.php変数のみがこのDSテンプレートに渡されたので、私はしませんそれを行うには正しい方法だと思います。
問題は実際にはds-1col--search-result.tpl.php
にはありませんでした。 print $ds_content;
を使用してクイックテストを行っているときに、ノードのカスタムテンプレートを提案したのは、search_result
ビューモードが構成されていないノードが、したがって、表示スイートには、カスタムテンプレートに印刷される$ ds_content変数セットがありませんでした。そのため、機能していないような印象を受けました。
しかし、質問に答えるために、表示スイートのテンプレートを提案するために特別なことをする必要はありません。まず、テンプレートをディスプレイスイートフォルダーからテーマフォルダーにコピーします。そして、あなたがしなければならないことは、通常のhook_process_node
を使用して、特定のビューモードのテンプレートを提案することだけです。