Ocultar o deshabilitar el campo después del registro
8
Tengo 1 campo en la página de registro de usuario que no se debe cambiar después del registro de la cuenta. Necesita estar oculto o deshabilitado. ¿Qué módulo puede hacer esto?
Habilite los permisos de campo en cualquier entidad, no solo en los nodos.
Permisos de campo basados en roles que permiten una visualización diferente según el acceso del usuario.
Los permisos a nivel de autor permiten ver y editar campos en función de quién es el propietario de la entidad.
Los permisos para cada campo no están habilitados de forma predeterminada. En cambio, los administradores pueden habilitar estos permisos explícitamente para los campos donde se necesita esta característica.
¿Cómo puede diferenciar entre la creación y edición de usuarios cuando es el mismo campo? No digo que no pueda, realmente me gustaría saber cómo. Y supongo que OP también lo haría.
Mołot
Será un permiso de campo basado en roles, debe otorgar permiso solo para anónimos (no estoy seguro de que esta condición funcione para el caso).
Bipin K
8
Si quieres hacerlo en módulo personalizado
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;}
¿Cómo puede diferenciar entre la creación y edición de usuarios?
DRUPWAY
2
@Smalution No tiene que hacerlo; para el formulario de registro sería my_module_form_user_register_form_alter, no my_module_form_user_profile_form_alter.
Mołot
1
hook es hook_form_FORM_ID_alter FORM_ID para el registro y la edición es diferente
arpitr
Ok lo tengo. He comprobado cuándo el usuario registra su id. De formulario "user-register-form" y cuando el usuario edita su id. De formulario "user-profile-form" normalmente.
DRUPWAY
Sí, como se esperaba :)
arpitr
1
Prueba con este código:
function MODULENAME_form_alter(&$form_state, $form_id){
$form[$field]['#access']= FALSE;
$form[$field]['#disabled']= TRUE;}
Por favor agregue algunas palabras de descripción.
Mołot
$ form ['field_name'] ['# disabled'] = VERDADERO; También funciona.
pinueve
1
Haga la propiedad de visibilidad de campo solo para usuarios anónimos. Por lo tanto, el valor se almacenará en el momento del registro. Entonces nadie puede acceder a ese campo. Una vez que instale el módulo de permisos de campo, encontrará esta opción para aplicar solo a usuarios anónimos.
Intente usar hook_form_alter, vea el siguiente ejemplo:
function MODULENAME_form_alter(&$form_state, $form_id){global $user;//$form_id :: user detail edit form idif($user->uid !=0&& $form_id =="required_form_id"){//$field :: requied field name
$form[$field]['#access']= FALSE;}}
coloque este código en un módulo personalizado, el campo podrá en contenido nuevo pero estará deshabilitado para editarlo.
if($form_id =='YOUR_FORM_ID'){//dsm($form);// for user form use '#user' instead of '#node' and uid instead of nidif(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;}
Respuestas:
Puedes probar el Módulo de permisos de campo
fuente
Si quieres hacerlo en módulo personalizado
fuente
my_module_form_user_register_form_alter
, nomy_module_form_user_profile_form_alter
.Prueba con este código:
fuente
Haga la propiedad de visibilidad de campo solo para usuarios anónimos. Por lo tanto, el valor se almacenará en el momento del registro. Entonces nadie puede acceder a ese campo. Una vez que instale el módulo de permisos de campo, encontrará esta opción para aplicar solo a usuarios anónimos.
fuente
fuente
Intente usar
hook_form_alter
, vea el siguiente ejemplo:fuente
coloque este código en un módulo personalizado, el campo podrá en contenido nuevo pero estará deshabilitado para editarlo.
}
fuente