web-dev-qa-db-ja.com

hook_field_loadおよびhook_field_formatter_viewはいつ呼び出されますか?

特定のフィールドの値の一部の文字を置き換えるために、hook_field_load()およびhook_field_formatter_view()関数を実装しました。しかし、彼らはまったく呼ばれていないようです。 exit()print_r($field)などのコマンドをフックに記述しましたが、何も起こりません。

このフックはいつ呼び出されますか? (そしてこれはビューのフィールド値を変更する正しい方法ですか?)

7
hpn

hook_field_load()hook_field_formatter_view()は実際にはフックではありません。それらはむしろ、問題のフィールドをそれ自体で実装するモジュールからのみ使用できるコールバックです。 api.drupal.orgにある両方のフックのドキュメントは、何も記述していないか、漠然としているかだけではあまり明確ではありません。

このモジュールのフィールドタイプのカスタムロード動作を定義します。

Drupal 7コードを介してgrepを実行する場合、module_invoke_all()によって呼び出されるこのいわゆるフックは表示されません。これは、関数がフックのように処理されないことを示す明確な記号です。

hook_field_attach_load()は、実際のフックであるhook_field_load()の代わりに使用できます。

そのことについては http://drupal.org/node/702586 での議論も参照してください。

5
Bernhard Fürst