Ubah hook_field_formatter_view?


11

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"


Apa JS yang ingin Anda tambahkan ke bidang ini?
saadlulu

jquery autocomplete plugin
volocuga

Jawaban:


9

Anda mungkin ingin mencoba mengubahnya dengan fungsi preproses:

function example_preprocess_field(&$variables) {  
  $field_name = $variables['element']['#field_name'];  
  if ($field_name == 'field_example_field') {
    // Your code here.
  }
}

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.


5

The hook_field_formatter_view()ditentukan oleh konfigurasi layar disebut dalam field_default_view(), yang itu sendiri disebut (atau dua lapisan di bawahnya) oleh field_attach_view().

Anda dapat melihat dari tautan kedua yang dihubungi hook_field_attach_view_alter()setelah selesai dengan formaters bidang:

drupal_alter('field_attach_view', $output, $context);

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.