web-dev-qa-db-ja.com

file_entity.tpl.phpのテンプレートの提案

短縮版

私の目的は、ノードフィールドのビューでファイルフィールドのテーマを設定することです。ビュー構成では、フィールドフォーマッターが_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']_配列がありません。

コメントはハードコアに感謝します、ありがとう。

4
duru

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}
6
Елин Й.

「ドキュメント」ファイルタイプの実際の例を次に示します。

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
0
Ales Rebec