Apa cara terbaik untuk mengubah output bidang? Saya menemukan " hook_field_formatter_view " tetapi sepertinya tidak ada "hook_field_formatter_view_alter" ada. Dalam kasus saya, saya memiliki bidang alamat (modul Addressfield) yang digunakan di panel "Pengiriman" dan "Penagihan" di halaman checkout DrupalCommerce . Saya ingin menambahkan beberapa js ke bidang ini, lebih disukai menggunakan API Formulir Drupal "#attached"
11
Jawaban:
Anda mungkin ingin mencoba mengubahnya dengan fungsi preproses:
Saya menjalankan tes untuk mengubah $ variabel ['elemen'] ['# terlampir'] ['js'] tetapi Drupal tidak mengenali perubahan pada elemen. Tidak yakin kenapa. Jadi, Anda mungkin harus menggunakan drupal_add_js.
sumber
The
hook_field_formatter_view()
ditentukan oleh konfigurasi layar disebut dalamfield_default_view()
, yang itu sendiri disebut (atau dua lapisan di bawahnya) olehfield_attach_view()
.Anda dapat melihat dari tautan kedua yang dihubungi
hook_field_attach_view_alter()
setelah selesai dengan formaters bidang:jadi kamu harus bisa mendefinisikan hook itu.
Namun, perlu diketahui bahwa Anda harus menemukan kembali bidang pada entitas, karena menjalankan kait untuk seluruh array render, bukan hanya array render untuk satu bidang. Tetapi kait contoh yang ditautkan ke atas memberikan contoh bagaimana melakukan itu.
sumber