Simpan Drupal 7 formulir web dalam kode


8

Saya bertanya-tanya apakah ada solusi untuk menyimpan formulir web dalam kode. Sehingga Anda dapat dengan mudah menggandakannya di situs lain dan membundelnya dengan modul Anda sendiri. Saya melihat sesuatu yang mirip dengan API tampilan.

Jika tidak tersedia, berapa banyak orang yang tertarik dengan fungsi seperti itu? Saya mungkin mengembangkan modul yang dapat menangani penyimpanan formulir web dalam Kode. Dan apakah Anda memiliki keprihatinan dalam membuat modul seperti itu?

Terima kasih, Jaap


Maksud Anda formulir dibuat dengan modul Webform?
Mołot

1
Ya maksud saya formulir dibuat dengan modul webform
Jaap Jansma

1
Ini sebenarnya sangat mudah, lihat saja bagaimana berbagi Webform melakukannya. ( webform_share_export()dan webform_share_node_insert()apakah fungsi uang). Tidak bisa mengatakan saya menyetujui penggunaan eval(), tetapi Anda bisa dengan mudah mengonversi itu untuk menggunakan objek JSON / string serialisasi sebagai gantinya. Satu-satunya kesulitan (kecil) yang perlu Anda atasi adalah bagaimana / kapan formulir web Anda diterapkan ke simpul baru, simpul tentu saja diperlukan untuk melampirkan formulir web itu.
Clive

Jawaban:


1

Tidak juga, dan tidak perlu

  1. Jika Anda membutuhkan formulir yang tersedia dari kode, formulir API tidak sulit untuk ditulis dari awal. Berlawanan dengan Tampilan, Anda hanya dapat mengubah bentuk Webforms ID simpul mereka, dan itu akan berubah dari situs ke situs, sehingga formulir Webform yang dibundel dengan modul tidak akan nyaman.

  2. Jika Anda ingin menggabungkan formulir dengan modul Anda, dan untuk alasan apa pun Anda tidak dapat menggunakan Formulir API, Integrasi Fitur UUID dan berbagi Webform menyediakan cara untuk melakukannya. Ini tidak akan menjadi kode dalam arti murni, tetapi harus berfungsi.

  3. Ini relatif mudah digunakan hook_form_alteruntuk mendapatkan representasi API Formulir dari webform tertentu. Tentu saja, Anda tidak akan dapat mengubahnya dengan mudah di masa depan, tetapi sekali lagi, bertentangan dengan pandangan, itu baik. Modul tidak ada salahnya jika beberapa data tidak ditampilkan. Data yang tidak disediakan, atau disediakan dengan cara yang tidak diharapkan modul, dapat merusak banyak hal. Jadi jika modul membutuhkan formulir, seharusnya tidak mudah untuk diedit . Pengeditan untuk membentuk akan memerlukan pengeditan untuk kode modul, jadi kode Formulir API membuat segalanya lebih mudah, tidak lebih sulit dalam jangka panjang, dalam situasi seperti itu.


1
Meskipun ini adalah jawaban yang baik untuk alternatifnya, saya pikir ingin menyimpan formulir web dalam kode adalah permintaan yang cukup masuk akal (saya tidak setuju bahwa tidak perlu untuk itu, atau itu tidak benar-benar mungkin). Misalnya jika Anda ingin memberikan formulir Kontak dasar dengan modul yang kemudian dapat diperpanjang oleh pengguna melalui UI, formulir web akan ideal. Membangun UI itu sendiri akan sangat menyebalkan. Karena webformobjek (atau array?) Tetap pada objek node, itu dapat serial dan diterapkan kembali dengan sangat mudah
Clive

@Clive Tetapi untuk kontak dasar, mengapa ada orang yang membutuhkan kode nyata? Mengapa simpul yang tidak diekspor (dengan Integrasi Fitur UUID Anda dapat mengekspor simpul ke modul) cukup?
Mołot

Apakah modul itu menyinkronkan objek Webform juga?
Clive

@Clive Sejauh yang saya ingat, dengan beberapa masalah tapi ya. Oh, dan jika kode khusus memerlukan data dari formulir, bukankah membuatnya menjadi bentuk web berbahaya? Saya tidak tahu cara membuat bidang yang tahan terhadap penghapusan di Webform (tapi saya akui saya belum melihat itu sulit).
Mołot

1
Memang, bahkan ada tambalan untuk webform untuk membuat integrasi berfungsi. Saya ambil kembali :)
Clive
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.