drupal 7 – Ocultar campos de usuario en el formulario de registro de profile2

Pregunta:

Estoy trabajando en un sitio web multiusuario con 3 roles en el sitio web Drupal 7. Estoy usando el módulo profile2 para campos personalizados para diferentes usuarios, también la ruta profile2 para el registro de perfil / usuario.

Surgió un problema con el módulo Ubicación porque necesito 3 campos de cck de ubicación diferentes (se permiten campos diferentes de cck de ubicación) de cada rol de usuario / perfil. Me quedé atrapado con esto más de 2 meses. Sería bueno que pueda usar Profile2 y Location cck, pero no es posible porque el módulo Vistas no extrae diferentes campos de Ubicación para mis campos Profile2 CCK en diferentes perfiles (por ejemplo, solo necesito el campo de teléfono o ciudad de la ubicación en alguna vista).

La única forma de lograr esto (hasta ahora) es hacer 3 campos de cck de ubicación en los campos de la cuenta de usuario y con el módulo de permisos de campo otorgar privilegios para roles específicos.

¡Pero! Necesito exponer esos campos de ubicación en las rutas de registro de profile2 con todos los demás campos de un perfil específico y deben ser obligatorios.

¿Existe alguna forma de ocultar los campos de cck de ubicación en el formulario de registro según el tipo de usuario (comprador, vendedor, etc.)?

Respuesta:

para ocultar y mostrar campos en el formulario de registro de usuario mientras usa la ruta Profile2: intente lo siguiente en hook_form_alter en template.php.

if ($form_id == 'user_register_form') { 

// get current path  
$request_path = request_path();  

// check if current path corresponds to your registration form for a particular role  
if (strpos($request_path,'buyer') !== false) {    

// removes the field that should be hidden
$form['field_1']['und'][0]['value']['#access'] = FALSE;

// or   
unset($form['field_1']['und'][0]['value']);

// set the state of the field to required  
 $form['field_2']['und'][0]['value']['#required'] = TRUE;

}  
}

advertencia simple: puede encontrar que los campos del módulo de ubicación que utilizan ajax (lo mismo ocurre con el módulo de campo de dirección) tienen un error que rompe el registro de usuario. formulario producido por Profile2 Path si se envía con errores y expone campos ocultos con el método descrito anteriormente. Busque información sobre este tema ( https://www.drupal.org/node/2558335 ).

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım