Saya mengalami masalah dalam menggunakan hook_form_alter()
dengan Views 3 dan Drupal 7.
Saya tidak dapat menambahkan pernyataan if untuk mengidentifikasi tampilan secara unik; apa pun yang saya masukkan, pernyataan if tidak pernah terbukti benar. Namun, saya dapat dengan mudah menggunakan form_id menggunakan yang berikut ini jadi saya tidak yakin di mana saya salah!
if ($form_id == 'views_exposed_form') {
}
Bagaimana saya menggunakannya hook_form_alter()
untuk secara unik mengubah satu pandangan saya?
mymodule_form_views_exposed_form_alter()
daripadamymodule_form_alter
, Anda kemudian dapat melewati pemeriksaan$form_id
.Apa yang akan saya lakukan adalah mengambil langkah mundur dan melihat apakah Anda bahkan mendaftarkan hook ini. Seringkali
$form_id
berubah.Proses debug:
Contoh kode (di dalam
mymodule.module
atautemplate.php
file) dari drupal.org :Anda akan melihat banyak id formulir yang dicetak lalu pilih tampilan Anda yang terkena hook formulir dan hasilkan dari sana.
Juga, dengan drupal 7 Anda dapat menargetkan formulir tertentu dengan ID secara langsung .
Contoh:
Perhatikan bahwa jika Anda menggunakan beberapa formulir yang terbuka, Anda dapat memeriksa tampilan tertentu dengan memeriksa $ form ['# id'] pada fungsi form change.
Akhirnya, jika itu tidak berhasil, saya akan merekomendasikan untuk meninjau antrian masalah ini: Cara mengubah filter dalam bentuk filter terbuka melalui kait form_alter
sumber
Baru-baru ini saya juga mengalami masalah ini, tetapi saya menggunakan modul fitur alih-alih yang khusus. Ini membantu saya untuk menyelesaikan masalah.
Dan kemudian Anda dapat menggunakan hook_form_views_exposed_form_alter ():
sumber