Jawaban:
Anda dapat mencoba Modul Izin Bidang
fitur
- Aktifkan izin bidang pada entitas apa pun, bukan hanya simpul.
- Izin bidang berbasis peran memungkinkan pola tampilan yang berbeda berdasarkan pada apa yang dimiliki pengguna.
- Izin tingkat penulis memungkinkan tampilan dan pengeditan bidang berdasarkan siapa pemilik entitas.
- Izin untuk setiap bidang tidak diaktifkan secara default. Sebagai gantinya, administrator dapat mengaktifkan izin ini secara eksplisit untuk bidang di mana fitur ini diperlukan.
Jika Anda ingin melakukannya dalam modul khusus
my_module_form_user_profile_form_alter(&$form, &$form_state) {
// Since it is on registration form, field might be reqruied.
$form['your_field']['#required'] = FALSE;
$form['your_field']['#access'] = FALSE;
}
my_module_form_user_register_form_alter
, bukan my_module_form_user_profile_form_alter
.
Coba gunakan hook_form_alter
, lihat contoh di bawah ini:
function MODULENAME_form_alter(&$form_state, $form_id){
global $user;
//$form_id :: user detail edit form id
if($user->uid != 0 && $form_id == "required_form_id"){
//$field :: requied field name
$form[$field]['#access'] = FALSE;
}
}
tempat kode ini dalam modul khusus, bidang akan dapat pada konten baru tetapi akan dinonaktifkan untuk mengeditnya.
if ($form_id == 'YOUR_FORM_ID') {
//dsm($form);
// for user form use '#user' instead of '#node' and uid instead of nid
if (isset($form['#node']) && isset($form['#node']->nid)){
// Prevent editing a field once the node has been created
// hiding the field entirely on the edit form.
$form['field_name']['#access'] = FALSE;
// disable update field on the edit form (gray color).
$form['field_name']['#disabled'] = TRUE;
}
}