Beberapa pengguna mungkin hanya memiliki kemampuan untuk mengedit salah satu dari set bidang yang muncul di tab vertikal pada formulir edit simpul. Dalam kasus seperti itu terlihat konyol menggunakan tab vertikal karena hanya ada satu tab vertikal yang dapat dipilih. Lihat tangkapan layar:
Jadi, apakah mungkin untuk menonaktifkan tab vertikal berdasarkan peran pengguna? Atau, kecuali itu, nonaktifkan semuanya untuk jenis konten tertentu? Untuk kasus penggunaan saya, saya hanya ingin Lokasi tidak ditampilkan di tab vertikal.
Saya mencoba Bidang Renderable dan Grup Lapangan bersama-sama tetapi mereka mengelola formulir salah (kereta, saya pikir). Atur Fields tidak dapat memisahkan Tab Vertikal.
Jawaban:
Ada beberapa cara untuk melakukan ini:
Anda dapat menggunakan modul Elemen Renderable (seperti yang Anda sebutkan di atas). Ini memungkinkan Anda untuk mendaftarkan setiap bagian bangunan di instalasi Anda dan mengelola tampilan melalui Field UI. Ini akan membuat (tambahan) elemen yang tersedia dari entitas yang ada pada formulir kelola / tampilan layar atau Anda dapat misalnya mendaftarkan formulir kontak dan mengatur ulang bidang melalui UI Bidang. Saat ini berfungsi dengan baik pada formulir, dukungan untuk orang lain akan datang dalam iterasi kedua.
Atau tambahkan yang berikut ke modul khusus Anda:
Sebuah modul sandbox yang menonaktifkan tab vertikal
Inilah masalah inti yang merujuk pada ini.
sumber
Anda juga dapat menggunakan pemeriksaan #access untuk mencegah orang melihat tab vertikal.
Cukup tambahkan itu ke perubahan bentuk kait atau di antara pemuatan dan rendering formulir. Setelah itu Anda dapat memanggil render ($ form) untuk mendapatkan markup.
sumber
Saya menulis solusi sederhana yang mungkin ada di utas yang telah disebutkan: https://drupal.org/node/1048644#comment-7822687 . Untuk kenyamanan, saya akan menempelkannya di sini.
Ada cara sederhana untuk menonaktifkan tab vertikal pada formulir, dengan hanya mengubah nilai
$form['additional_settings']['#type']
variabel ke'fieldset'
dalam implementasi hook_form_alter () atau hook_form_FORM_ID_alter () , jika itu sama dengan'vertical_tabs'
.Anda tidak perlu mengubah pengaturan akses atau menjalankan seluruh
$form
array secara rekursif, yang terakhir mengkonsumsi sumber daya yang tidak perlu terlalu banyak.(Diuji dalam Drupal 7.23 .)
Itu semua, tentu saja, ganti
MYMODULEORTHEMENAME
dengan modul Anda sendiri atau nama tema (yang terakhir dalamtemplate.php
file), danmy_form_id
ke id formulir Anda.Anda juga dapat menonaktifkan bidang vertikal hanya untuk pengguna yang TIDAK memiliki peran administrator :
Dalam kasus seseorang tertarik, saya terpasang patch (yang melakukan hal yang sama seperti di atas) untuk Dripman modul sandbox 's: # 2.080.739: Sederhanakan metode menonaktifkan tab vertikal dengan hanya mengubah
$form['additional_settings']['#type']
ke'fieldset'
.sumber
Elemen yang dapat di-render saat ini tidak didukung, dan mengakui pada halaman proyek bahwa itu berbenturan dengan beberapa modul kontribusi lainnya sehingga saya tidak akan bergantung pada itu untuk lokasi produksi.
Pertanyaan tentang cara menonaktifkan tab vertikal sepenuhnya ditangani di utas ini .
Dripman telah membuat modul kotak pasir sederhana untuk menonaktifkan tab vertikal sepenuhnya.
Tergantung pada tingkat keterlibatan yang Anda inginkan dengan pengkodean, modul Dripman harus mudah disesuaikan untuk menjadi selektif berdasarkan bidang / peran.
Permintaan maaf untuk tumpang tindih dengan jawaban singkat oleh @nicoz
sumber
Anda dapat menggunakan modul Visibilitas Tab Vertikal .
Modul saat ini di kotak pasir
sumber
Untuk kasus penggunaan saya, saya mencoba untuk menonaktifkan tab vertikal yang sedang diterapkan pada bagian Opsi penerbitan pada formulir edit simpul (karena ini adalah satu-satunya fieldset yang dapat diakses oleh set pengguna tertentu):
Untuk klarifikasi, Anda tidak hanya perlu mengatur
additional_settings
#collapsible
ke FALSE, elemen apa pun di dalamnya juga harus memiliki elemen #collapsibleset to
FALSE, in my case that was the
options`.sumber