Menyelam Jauh ke dalam Modul Formulir Web untuk Drupal 8/9
Diterbitkan: 2021-10-12Modul Webform adalah pembuat formulir dan manajer pengiriman yang paling kuat dan fleksibel untuk Drupal. Ini memberi pembuat situs kekuatan untuk dengan mudah membuat formulir kompleks secara instan. Muncul dengan tingkat pengaturan default tertentu, juga memungkinkan Anda menyesuaikannya sesuai kebutuhan Anda.
Lihat blog yang luar biasa ini - Modul Webform Drupal 8 - Tutorial Singkat untuk membantu Anda memulai modul Webform di situs Drupal 8/9 Anda. Ini akan membantu Anda memahami dasar-dasarnya dengan mudah.
Modul Webform dikirimkan dengan banyak fitur menarik dan saya ingin menyebutkan beberapa di sini.

Fitur formulir web
1. Mengubah bentuk & elemen
Setiap bentuk, elemen, dan pengaturan terkaitnya dapat diubah dengan menggunakan kaitnya masing-masing. Di bawah ini adalah beberapa kait yang tersedia untuk digunakan dan Anda dapat menemukan lebih banyak lagi di file webform.api.php :
- Bentuk kait
hook_webform_submission_form_alter()
Lakukan perubahan sebelum formulir pengiriman formulir web ditampilkan.
- Kait elemen
hook_webform_element_alter()
Ubah elemen formulir web.
- Kait pilihan
hook_webform_options_alter()
Ubah opsi formulir web.
- Kait pegangan
hook_webform_handler_invoke_alter()
Bertindak pada penangan formulir web saat suatu metode dipanggil.
- lebih banyak kait…
hook_webform_access_rules_alter() dll..
Ubah daftar aturan akses yang harus dikelola pada per tingkat formulir web.
2. Sumber YAML
Modul Webform dimulai sebagai modul Formulir YAML, yang memungkinkan orang membuat formulir dengan menulis markup YAML. Pada titik tertentu, modul Formulir YAML mulai memiliki UI dan menjadi modul Formulir Web untuk Drupal 8.
- YAML menyediakan bahasa markup yang sederhana & mudah dipelajari untuk membuat & mengedit elemen formulir web secara massal.
- Halaman Sumber (Tampilan) memungkinkan pengembang mengedit larik render formulir web menggunakan markup YAML. Pengembang dapat menggunakan halaman Sumber (Lihat) untuk membuat kode formulir web untuk mengubah label formulir web dengan cepat, memotong-n-menempel beberapa elemen, menyusun ulang elemen, serta menambahkan properti khusus dan markup ke elemen.
- Berikut adalah contoh formulir Kontak dan kode sumber YAML yang sesuai:

Formulir Kontak dengan UI drag-n-drop

Kode sumber YAML formulir Kontak
3. Bidang bersyarat
Formulir web memungkinkan Anda menambahkan logika kondisional ke elemen Anda di dalam formulir Anda. Mari kita perhatikan contoh kecil, di mana kita perlu menangani visibilitas elemen secara kondisional berdasarkan nilai elemen lain dalam formulir.
Berikut ini contoh formulir dengan bidang dua langkah, LANGKAH 1 (Elemen Radio) dengan opsi 'Email' dan 'Nomor Ponsel'. LANGKAH 2 (Fieldset) dengan dua elemen, 'Email' dan 'Nomor Ponsel'.

Halaman Pembuatan Formulir

Halaman Tampilan Formulir
Dalam contoh di atas, saya ingin menampilkan bidang 'Email' jika opsi 'Email' dipilih pada Langkah 1, jika tidak, tunjukkan bidang 'Nomor Ponsel' jika opsi 'Nomor Ponsel' dipilih pada Langkah 1.
Untuk mencapai itu, edit bidang 'Email' Anda, klik tab 'Kondisi', pilih 'Status' sebagai 'Terlihat' dan atur 'Pemicu/Nilai' sebagai 'LANGKAH 1 [Radio] nilai adalah email'. Demikian pula, ikuti langkah-langkah yang sama untuk menambahkan logika kondisional ke bidang 'Nomor Seluler' Anda dan setel 'Pemicu/Nilai' sebagai 'LANGKAH 1 [Radio] nilai adalah nomor_seluler'. Berikut tampilan akhir dari Webform:

Menyiapkan logika bersyarat

Formulir ketika 'Email' dipilih pada LANGKAH 1

Formulir ketika 'Nomor Ponsel' dipilih pada LANGKAH 1
4. Properti opsi khusus
Formulir web memungkinkan Anda menambahkan properti opsi khusus ke elemen dari Anda.
Bayangkan sebuah skenario di mana Anda ingin menangani opsi elemen radio secara kondisional berdasarkan nilai elemen yang berbeda dalam formulir. Bagaimana Anda melakukannya?
Yah, saya tidak menemukan cara untuk menanganinya melalui pengaturan logika Bersyarat dari UI. Tetapi ada ketentuan untuk menyetel 'properti opsi kustom' ke elemen Anda, di mana Anda menulis logika bersyarat yang diperlukan yang menargetkan opsi Anda di dalam elemen menggunakan kode YAML.
Berikut adalah contoh, di mana kita dapat melihat dua elemen radio dan berdasarkan opsi yang saya pilih di elemen pertama, visibilitas opsi dalam elemen kedua harus berubah.

Halaman Pembuatan Formulir

Halaman Tampilan Formulir sebelum menambahkan properti opsi khusus:

- Jika 'Tipe A' dipilih, maka 'Opsi 1' dan 'Opsi 2' akan terlihat dari elemen kedua. Demikian pula, jika 'Tipe B' dipilih, maka 'Opsi 3' dan 'Opsi 4' akan terlihat. Untuk mencapai ini, edit elemen kedua, buka tab 'Lanjutan', gulir ke bawah ke bagian 'Properti opsi (khusus)' dan tulis logika yang diperlukan dalam YAML.


Menyiapkan properti opsi

Bentuk ketika 'Tipe A' dipilih

Bentuk ketika 'Tipe B' dipilih
5. Penangan email pengiriman formulir web
Penangan email
Penangan email mengirimkan pengiriman formulir web melalui email. Untuk menambahkan penangan email ke formulir web Anda, buka 'Pengaturan' lalu tab 'Email/Penangan'. Selanjutnya, klik tombol 'Tambah Email / Tambahkan penangan'.

Tambahkan Penangan Email
- Seperti yang ditunjukkan pada gambar di bawah, pada tab 'Umum', tambahkan 'Judul' dan atur detail 'Kirim ke' dan 'Kirim dari'. Tambahkan pesan 'Subjek' dan 'Tubuh' sesuai kebutuhan dan simpan formulir konfigurasi.





Dan itu saja. Handler Anda dipecat setiap kali formulir dikirimkan.
- Anda juga dapat mengatur penangan email bersyarat ke formulir web Anda, yaitu memicu penangan email yang berbeda berdasarkan nilai elemen tertentu dalam formulir.
- Misalnya, mari kita pertimbangkan elemen 'Pilih' dengan nilai 'Tipe 1' dan 'Tipe 2'. Jika pengguna mengirimkan 'Tipe 1', picu pengendali 'Email - Tipe 1' yang telah menyetel alamat 'Kepada' ke ' [dilindungi email] '. Jika pengguna mengirimkan 'Tipe 2', picu pengendali 'Email - Tipe 2' yang telah menyetel alamat 'Kepada' ke ' [dilindungi email] '.
- Untuk menambahkan logika kondisional ke penangan email Anda, buat satu penangan dan beri nama 'Email - Tipe 1'. Setel alamat 'Ke' ke ' [dilindungi email] ', alihkan ke Tab 'Ketentuan', pilih 'Status' sebagai 'Terlihat' dan atur 'Pemicu/Nilai' sebagai 'Pilih Jenis [Pilih] nilainya adalah type_1'.
- Demikian pula, buat handler kedua dan beri nama 'Email - Type 2'. Setel alamat 'Ke' ke ' [dilindungi email] ', alihkan ke Tab 'Ketentuan', pilih 'Status' sebagai 'Terlihat' dan atur 'Pemicu/Nilai' sebagai 'Pilih Jenis [Pilih] nilai adalah type_2'.

Penangan email terjadwal
- Ini memperluas penangan email modul Webform untuk memungkinkan email dijadwalkan. Untuk menggunakan fitur ini, aktifkan sub-modul 'Penanganan Email Terjadwal Formulir Web'.
- Untuk menjadwalkan pengiriman email pengiriman formulir, klik tombol 'Tambahkan penangan'. Pilih pengendali 'Email Terjadwal' di sini.

Hanya ada satu pengaturan konfigurasi tambahan di 'Email Terjadwal' handler dibandingkan dengan 'Email handler' normal. Dan itu untuk menambahkan Jadwalkan tanggal email di bawah tab Pengaturan umum.

Penangan email terjadwal
Tetapkan tanggal untuk memicu penangan Anda dan ketika cron berikutnya dijalankan, email Anda akan dikirim!
Menemukan Bantuan
Ada berbagai cara untuk mencari bantuan dengan modul formulir web. Berikut adalah daftar dari beberapa sumber:
- Dokumentasi, Buku Masak, & Siaran Layar
- https://www.drupal.org/docs/8/modules/webform
- Antrean Masalah Formulir Web
- https://www.drupal.org/project/issues/webform
- Jawaban Drupal
- http://drupal.stackexchange.com
- saluran kendur
- Anda selalu dapat memposting pertanyaan Anda mengenai modul Webform di saluran #webform dalam ruang kerja slack Drupal. Siapa pun dari komunitas, bahkan pengelola modul sendiri selalu ada dan cukup baik untuk memandu Anda mengatasi masalah Anda.
Teriakan BESAR untuk Jacob Rockowitz atas dukungannya yang tiada henti terhadap modul Drupal 8/9 Webform. Webform tidak akan seperti sekarang ini tanpa dia.
