Saya telah menggunakan modul "Field Group" dan membuat beberapa grup di backend. Sekarang saya ingin menambahkan bidang ke grup secara terprogram. Bagaimana saya bisa melakukan itu.
Saya menggunakan Hook_form_alter, saya perhatikan bahwa setiap bidang memiliki 'und'attribute' di mana grup bidang yang dimilikinya terdaftar, tetapi jika array buat dan 'und' dan tambahkan nama grup bidang ke dalamnya, itu tidak berfungsi .
Bagaimana saya harus melakukannya?
Jawaban:
Ini agak lama, tetapi saya ingin melakukan hal yang sama dan tidak dapat menemukan jawaban di web. Saya akhirnya mencari tahu sendiri.
Misalkan Anda membuat grup bidang melalui antarmuka CMS dengan nama "group_product_fields". Anda menambahkan beberapa bidang ke grup itu.
Sekarang Anda memiliki bidang baru yang disertakan dalam formulir secara sistematis melalui hook_form_alter. Anda ingin menambahkan bidang itu ke "group_product_fields". Berikut ini contoh bidangnya:
Yang perlu Anda lakukan sekarang adalah menambahkan bidang baru itu ke grup bidang. Untuk melakukan itu tambahkan baris di bawah ini ke hook_form_alter. Itu dapat ditempatkan di mana saja di dalamnya.
Itu saja. Anda mungkin ingin menyesuaikan bobot bidang agar diposisikan sesuai keinginan. Tetapi pada akhirnya ini sangat sederhana. :)
sumber
Mengutip setelah menambahkan Bidang ke grup :
sumber
'mode' => 'form'
atau'mode' => 'default'
bukannya'mode' => 'full'
, atau hanya menghilangkanmode
sama sekali. Setiap view_mode_name, terima kasih @Maiq FashTidak yakin cara kerjanya untuk Anda. Karena nama kunci array harus cocok dengan nama bidang basis data. Dan mereka:
Saya harus menggunakan format berikut untuk membuatnya berfungsi. beri tahu saya jika saya melakukan sesuatu yang konyol di sini.
sumber
Lihatlah hook_field_group_build_pre_render_alter ().
Ini memberi Anda kesempatan untuk mengubah struktur grup Anda secara terprogram.
Misalnya, pindahkan bidang "example_field" ke grup "group_example" dari elemen bentuk root:
sumber
Pertama, cari nama grup mesin grup Anda di panel CMS kemudian di form Anda lakukan
untuk instanst, saya telah menambahkan email bidang khusus ke
User form field group
grup bidang:sumber