Wann werden hook_field_load und hook_field_formatter_view aufgerufen?

7

Ich habe die Funktion hook_field_load()und implementiert hook_field_formatter_view(), um einige Zeichen im Wert eines bestimmten Feldes zu ersetzen. Aber sie scheinen überhaupt nicht genannt zu werden. Ich habe einen Befehl wie exit()und print_r($field)in die Haken geschrieben, aber nichts passiert.

Wann werden diese Hooks aufgerufen? (Und ist dies der richtige Weg, um Feldwerte für die Ansicht zu ändern?)

hpn
quelle

Antworten:

5

hook_field_load()und hook_field_formatter_view()sind nicht wirklich Haken. Es handelt sich vielmehr um Rückrufe, die nur von einem Modul verwendet werden können, das das betreffende Feld selbst implementiert. Die Dokumentation auf api.drupal.org für beide Hooks ist insofern nicht sehr klar, als nichts oder nur eine vage Aussage gemacht wird:

Definieren Sie das benutzerdefinierte Ladeverhalten für die Feldtypen dieses Moduls.

Wenn Sie den Drupal 7-Code durchgehen, sehen Sie nie diese sogenannten Hooks, die aufgerufen werden. Dies module_invoke_all()ist ein klares Zeichen dafür, dass Funktionen nicht wie Hooks behandelt werden.

hook_field_attach_load()kann verwendet werden, stattdessen hook_field_load()ist ein echter Haken.

Siehe auch die Diskussion unter http://drupal.org/node/702586 .

Bernhard Fürst
quelle