Sembunyikan bidang saat membuat simpul

11

Bagaimana saya bisa menyembunyikan bidang saat membuat simpul, tetapi menampilkannya saat mengedit mode?

pengguna780
sumber

Jawaban:

16

Jika saya memahami pertanyaan Anda, saya pikir Anda dapat menggunakan modul khusus (dalam contoh ini, nama modulnya test_remove_field) dan menyertakan kode berikut:

function test_remove_field_form_alter(&$form, &$form_state) {

    if (arg(0) == 'node' && arg(1) == 'add') {
    $form['field_test']['#access'] = 0;
    }

}

Catatan: ingat itu field_testharus nama bidang Anda masing-masing.

cigotete
sumber
Terima kasih. Saya tidak terbiasa dengan membuat modul. apakah ada tips css atau tema untuk melakukan ini?
user780
Halo av, mengenai pertanyaan Anda, ya, mungkin, Anda dapat menambahkan deklarasi IF yang sama di page.tpl.php (zona kepala bagian dalam) dan menambahkan di dalam deklarasi aturan CSS (ID atau CLASS) terkait untuk menghapus bidang Anda: # field_name_test {display: none;}
cigotete
1
berikut ini kode pengujian saya: <? php if (arg (0) == 'node' && arg (1) == 'add') {?> <style type = "text / css"> #field_name_test {display : tidak ada; } </style> <? php}?>
cigotete
4

The Lapangan Perizinan modul memungkinkan Anda untuk izin tingkat lapangan set:

  • Buat bidang (edit pada pembuatan konten)
  • Edit bidang terlepas dari pembuat konten
  • Edit bidang sendiri pada konten yang dibuat oleh pengguna
  • Lihat bidang terlepas dari pembuat konten
  • Lihat bidangnya sendiri pada konten yang dibuat oleh pengguna

Anda bisa menggunakan opsi ini untuk mengaktifkan izin berbasis peran untuk bidang.

Ketika izin diaktifkan, akses ke bidang ini ditolak secara default dan izin eksplisit harus diberikan kepada peran pengguna yang tepat dari halaman administrasi izin. Di sisi lain, ketika opsi ini dinonaktifkan, izin bidang diwarisi dari tampilan konten dan / atau edit izin. Sebagai contoh, pengguna yang diizinkan untuk melihat simpul tertentu juga akan dapat melihat bidang ini, dan sebagainya.

Izin bidang

Refineo
sumber
3

Saya akan menggunakan hook_form_alter () dan mengatur ['#access']properti FALSEseperti jawaban oleh @ moon.watcher.

Jika Anda berada di Drupal 6, Anda memerlukan modul untuk melakukan ini. Di Drupal 7 Anda dapat memanggil hook_form_alter () dari templat Anda.

pcambra
sumber
2

Ini adalah kasus penggunaan untuk Modul Dukungan Formulir Aturan - https://www.drupal.org/project/rules_forms .

Fitur termasuk:

  • Aktifkan acara untuk pembuatan formulir, validasi, dan pengiriman berdasarkan bentuk demi bentuk.
  • Targetkan elemen formulir individual atau seluruh formulir dalam kondisi dan tindakan. Memanipulasi atribut elemen bentuk seperti judul, deskripsi, berat, dan lainnya.
  • Validasi nilai-nilai elemen formulir selama validasi formulir.
  • Setel kesalahan formulir saat validasi berbasis aturan gagal.
  • Mengarahkan pengguna ke halaman lain setelah melihat atau mengirimkan formulir.
  • Periksa atribut elemen dalam bentuk aktif dengan alat inspeksi elemen.
ske313
sumber
0

Anda bisa mengambil alih simpul menambahkan / mengedit formulir dengan halaman Panel. Dengan ini, Anda dapat memilih dan memilih apa yang Anda inginkan di formulir.

Dee
sumber