私の目的は、ノードフィールドのビューでファイルフィールドのテーマを設定することです。ビュー構成では、フィールドフォーマッターが_Rendered file
_に設定され、ビューモードが選択されます。テンプレートファイルを提案するにはどうすればよいですか?
私が見ると、ファイルエンティティのテーマ設定は_file_entity
_モジュールのfile_entity.tpl.phpを通じて行われます。このファイルをテーマフォルダーにコピーし、次の名前を試しました。
_file_entity--my-view-mode.tpl.php
file-entity--my-view-mode.tpl.php
file_entity--views--my-view-mode.tpl.php
file-entity--views--my-view-mode.tpl.php
_
どれもうまくいきませんでした。それで、_view_mode_templates.module
_もそうであるように、以下のようないくつかの提案をフックしようとしました。
_<?php
MYTHEME_preprocess(&$vars){
$vars['theme_hook_suggestions'][] = 'file_entity__views__my_view_mode';
}
?>
_
これはその_file-entity--views--my-view-mode.tpl.php
_をロードすることになりますが、面白いことに次のようなエラーが発生します。
致命的なエラー:blah/blah/file-entity--views--my-view-mode.tpl.php on line 71)では、変数のみを参照渡しすることができます
これは実際にはこの行です:
_hide($content['links']);
_
おかしなことに、その行をコメントアウトすると、エラーメッセージが表示されずに致命的なマスターキルWSODが表示されます。
_view_mode_templates.module
_と同様に、以下のようにしようとすると、提案が表示されません。
_<?php
function MYTHEME_preprocess(&$vars) {
if (array_key_exists('file_entity', entity_get_info())) {
$vars['theme_hook_suggestions'][] = 'file_entity__views__my_view_mode';
}
}
?>
_
では、テーマ提案を正しい場所に提案していないのではないでしょうか?これをtemplate_preprocess_file_entity(&$variables)
やtemplate_preprocess_entity(&$variables)
などで提案する必要がありますか?私が見ることができない限り、適切な_$vars['theme_hook_suggestions']
_配列がありません。
コメントはハードコアに感謝します、ありがとう。
Displaying Media の見出しFurther Themingの下に、テンプレートの提案に関するドキュメントがあります。
ファイルエンティティモジュールによって提供されるテーマの提案は次のとおりです。
file__{file type} file__{file type}__{view mode} file__{mime type} file__{mime type}__{view mode} file__{file id} file__{file id}__{view mode}
「ドキュメント」ファイルタイプの実際の例を次に示します。
file--document.tpl.php
file--document--default.tpl.php // default view
file--application-pdf.tpl.php // pdf mime type
file--application-pdf--default.tpl.php
file--1234.tpl.php // file id
file--1234--default.tpl.php