Apa perbedaan antara drupal_get_form()
dan drupal_retrieve_form()
? Bisakah seseorang menjelaskan perbedaannya? Saya melihat API, tetapi deskripsinya tampak mirip dengan saya.
10
Apa perbedaan antara drupal_get_form()
dan drupal_retrieve_form()
? Bisakah seseorang menjelaskan perbedaannya? Saya melihat API, tetapi deskripsinya tampak mirip dengan saya.
drupal_retrieve_form()
memungkinkan kode Anda untuk mengakses yang diperbarui$form_state
karena telah dilewatkan oleh referensi, namundrupal_get_form()
hanya mengembalikan$form
, bukan negara.Jawaban:
Perbedaannya adalah bahwa
drupal_get_form()
menangani pengambilan, pemrosesan, dan menampilkan formulir HTML yang diberikan untuk modul secara otomatis, sementaradrupal_retrieve_form()
mengembalikan array terstruktur yang mendefinisikan formulir.Mengambil formulir
drupal_get_form()
pertama-tama memeriksa apakah form ada di cache form dengan form_get_cache () ; jika tidak ada, ia memanggil drupal_retrieve_form () , dan drupal_prepare_form () .Memproses formulir
drupal_get_form()
panggilan drupal_process_form () , yang merupakan fungsi yang memanggil drupal_validate_form () , dan yang memanggil penangan pengiriman dengan form_execute_handlers () .Merender formulir
Proses rendering selesai dari
drupal_process_form()
, yang memanggil form_builder () .Dalam sebagian besar kasus,
drupal_get_form()
adalah fungsi yang digunakan, seperti dalam kode berikut.Satu-satunya modul yang saya temukan yang memanggil
drupal_retrieve_form()
langsung adalah modul Mollom di mollom_moderate () , yang menggunakannya untuk secara otomatis mengirimkan formulir. Kode dapat menggunakan drupal_form_submit () , tetapi (seperti komentar mengatakan), "Pengiriman formulir terprogram tidak dapat secara otomatis menggunakan tombol / aksi pengiriman formulir utama, jadi kita harus miripdrupal_form_submit()
."sumber