Saya tertarik untuk menyematkan Formulir Widget Bidang di luar konteks formulir edit seluruh simpul.
Saya telah menampilkan formulir lengkap di masa lalu menggunakan drupal_get_form tetapi tampaknya tidak berlaku untuk Formulir Bidang soliter.
Apakah mungkin menampilkan Formulir Widget Bidang yang berfungsi? Apa cara terbaik untuk melakukannya?
Kedua widget bidang dan formulir "normal" tampak sangat mirip, jadi jika ini tidak memungkinkan, apa yang akan diperlukan untuk "mengubah" formulir widget menjadi bentuk normal?
Pertanyaan ini tampaknya meminta sesuatu yang serupa tetapi saya tidak mengerti jawabannya. Jawaban itu menentukan menggunakan hook_field_widget_form_alter ; apa yang saya tidak mengerti adalah bagaimana mendapatkan Formulir Bidang yang akan ditampilkan bukan bagaimana menghubungkannya setelah itu dibuat.
#access = FALSE
yang tampak tidak rapi dalam konteks ini.Saya secara intensif menggunakan fungsi yang disarankan oleh ttk, tapi saya pikir pembaruan terbaru mengacaukan ...
Ini adalah versi baru dari solusi sebelumnya yang berfungsi baik dengan Drupal 7.22 dan ctools 7.x-1.3.
Jadi, seperti pada posting sebelumnya, Anda memanggil fungsi kustom Anda seperti ini:
Perhatikan bahwa bundel entitas sekarang menjadi parameter. Saya melakukan ini karena saya juga menggunakan fungsi ini untuk mengedit pengguna. Dengan cara ini, itu juga dapat digunakan untuk istilah taksonomi, atau entitas lain.
Dan
my_field_attach_form
didefinisikan sebagai:Fungsi ini menghemat banyak waktu saya, semoga juga untuk Anda!
sumber
Berikut ini solusinya menggunakan
ctools_field_invoke_field()
metode ini. Dalam fungsi formulir kustom Anda, tambahkan:di mana
my_field_attach_form
fungsi didefinisikan sebagaiPerhatikan, bahwa situs Anda harus memiliki ctools diaktifkan. Sayang sekali bahwa Drupal tidak menyertakan fungsi pembantu seperti ini secara default.
sumber
Saya tidak dapat menjalankan metode ctools dan memutuskan untuk melakukannya dengan cara ini.
Kode ini akan berada di dalam fungsi form, jadi $ form dan $ form_state sudah dikirimkan sebelumnya.
Pertama, buat simpul kosong dari jenis yang memiliki bidang yang ingin Anda render.
Saya menduplikasi variabel bentuk jadi saya tidak akan mengalahkan yang asli.
Tarik bidang yang Anda cari dan tambahkan ke formulir.
Saya menggunakan metode ini untuk merender widget pilih taksonomi, widget kotak centang taksonomi, dan widget Pilih Hirarki pada formulir kustom. (Taxonomy Autocomplete widget renders tetapi menimbulkan kesalahan saat kirim)
Akhirnya render dan cetak
sumber
ctools_field_invoke_field()
Metode yang dijelaskan di atas juga berfungsi.Saya telah membuat formulir dari bidang indivisual menggunakan
ini harus mengembalikan formulir widget yang diperlukan yang dapat digunakan dalam bentuk apa pun seperti
Untuk mendapatkan nilai untuk 2 parameter di atas, gunakan:
Untuk parameter lain, Anda dapat memeriksa tautan api di sini
Ini mengembalikan bentuk widget default yang ditentukan pada bidang jenis konten.
Semoga ini bisa membantu seseorang :)
sumber