Was ist der beste Weg, um die Feldausgabe zu ändern? Ich habe " hook_field_formatter_view " gefunden, aber es scheint nichts wie "hook_field_formatter_view_alter" zu existieren. In meinem Fall habe ich Adressfelder (Adressfeldmodul), die in den Bereichen "Versand" und "Abrechnung" auf der Checkout-Seite von DrupalCommerce verwendet werden . Ich möchte diesen Feldern einige js hinzufügen, vorzugsweise mithilfe der Drupal-Formular-API "#attached".
11
Antworten:
Möglicherweise möchten Sie versuchen, es mit einer Vorverarbeitungsfunktion zu ändern:
Ich habe einen Test durchgeführt, um $ variables ['element'] ['# attach'] ['js'] zu ändern, aber Drupal hat die Änderungen am Element nicht erkannt. Nicht sicher warum. Daher müssen Sie möglicherweise drupal_add_js verwenden.
quelle
Die
hook_field_formatter_view()
von der Anzeigekonfiguration angegebene wird aufgerufenfield_default_view()
, die selbst von (ein oder zwei Ebenen darunter) von aufgerufen wirdfield_attach_view()
.Sie können dem zweiten Link entnehmen, dass dieser aufgerufen wird,
hook_field_attach_view_alter()
nachdem er mit den Feldformatierern fertig ist:Sie sollten also in der Lage sein, diesen Hook zu definieren.
Beachten Sie jedoch, dass Sie das Feld in der Entität erneut finden müssen, da es den Hook für das gesamte Render-Array ausführt und nicht nur das Render-Array für ein Feld. Der oben verlinkte Beispiel-Hook gibt jedoch ein Beispiel dafür.
quelle