web-dev-qa-db-ja.com

Display Suiteテンプレートの提案をさらに追加する方法

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テンプレートに渡されたので、私はしませんそれを行うには正しい方法だと思います。

1
Beebee

問題は実際にはds-1col--search-result.tpl.phpにはありませんでした。 print $ds_content;を使用してクイックテストを行っているときに、ノードのカスタムテンプレートを提案したのは、search_resultビューモードが構成されていないノードが、したがって、表示スイートには、カスタムテンプレートに印刷される$ ds_content変数セットがありませんでした。そのため、機能していないような印象を受けました。

しかし、質問に答えるために、表示スイートのテンプレートを提案するために特別なことをする必要はありません。まず、テンプレートをディスプレイスイートフォルダーからテーマフォルダーにコピーします。そして、あなたがしなければならないことは、通常のhook_process_nodeを使用して、特定のビューモードのテンプレートを提案することだけです。

0
Beebee