特定のフィールドの値の一部の文字を置き換えるために、hook_field_load()
およびhook_field_formatter_view()
関数を実装しました。しかし、彼らはまったく呼ばれていないようです。 exit()
やprint_r($field)
などのコマンドをフックに記述しましたが、何も起こりません。
このフックはいつ呼び出されますか? (そしてこれはビューのフィールド値を変更する正しい方法ですか?)
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 での議論も参照してください。