Configuración del sitio para ocultar campos de usuario personalizados de la página de registro

Pensé que había visto una solicitud de función similar recientemente, pero no puedo encontrarla.

Si tienes muchos campos personalizados de usuario, el modal de inicio de sesión se ve feo. Si hay 10 campos opcionales y 2 obligatorios, uno tiene que hacer mucho desplazamiento para encontrar el (los) que son obligatorios. Esto es una molestia.

Es posible ocultar esos campos con CSS como:

.create-account .user-fields .user-field {
    display: none;

    &:nth-of-type(4){
        display: block;
    }

}

Es algo engorroso, ya que tienes que adivinar qué nth-of-type usar mediante prueba y error, pero lo que podría sugerir como un :bug: es que el CSS que funcionaba para que ese modal se viera correctamente cambia de vez en cuando. Parece que fue modificado en la reciente beta6. Esto hace triste a mi cliente, ya que los campos obligatorios no son visibles, por lo que la gente no podía registrarse. Se dio cuenta solo porque alguien envió un correo electrónico para quejarse.

¡Problema resuelto!

Se agregó CSS a esos campos, ¡así que esto ya no es un problema!

10 Me gusta

I don’t think it would be hard to add a class or data attribute that includes the custom field’s name, which would make it much less fragile to target with CSS. I can probably get to that within the next couple of days.

7 Me gusta

Took a quick look and it’s nearly identical to another PR I opened recently to add a class to tag groups. So here’s a PR for this… we might want to add a helper to sanitize class names before merging these?

9 Me gusta

Acabo de darme cuenta de que nunca hice un seguimiento después de que esto se fusionara. Ahora, en la página de registro, todos los campos de usuario tienen una clase en el formato user-field-nombre. Por lo tanto, si tenías un campo con el nombre “términos y condiciones”, tendría la clase user-field-terms-and-conditions.

También puedes tomar un atajo y ocultar todos los campos de usuario personalizados en el registro con:

.d-modal.create-account div[class*="user-field-"] {
    display: none;
}
7 Me gusta

Thanks! I managed to get this done a week or two ago. You might edit that list to also include the css to un-hide a field or two after hiding the rest.

2 Me gusta

Aquí hay un hilo cerrado sobre cómo resolver esto, que incluye una solución en CSS:

Actualmente, para los campos personalizados de usuario, las opciones son:

¿Editable después del registro?
¿Obligatorio al registrarse?
¿Mostrar en el perfil público?
¿Mostrar en la tarjeta de usuario?

Creo que otra opción sería bastante útil:

¿Mostrar en el formulario de registro?
o
¿Ocultar en el formulario de registro?

Por defecto, sin modificaciones de CSS personalizadas, todos los campos personalizados (obligatorios o no) se mostrarán en el formulario de registro. Esto limita en cierta medida la cantidad de campos personalizados que se pueden implementar, ya que tener demasiados puede sobrecargar el formulario de registro y potencialmente intimidar a los nuevos usuarios.

11 Me gusta

A veces es útil tener varios campos personalizados de usuario para solicitar información que no quieres pedir a las personas durante el registro. Por ejemplo, podrías querer permitir que alguien proporcione su dirección, código postal o color de cabello, pero durante el registro solo pedirles su nombre y dirección de correo electrónico.

Esto ya es posible mediante el uso de un componente de tema para ocultar todos los campos personalizados y luego mostrar solo los que deseas. Sería conveniente que hubiera una casilla de verificación en la configuración de los campos personalizados de usuario.

10 Me gusta

Esto sería excelente.

También sería útil poder diferenciar entre registros e invitados, especialmente si un campo es obligatorio para ambos o solo para los registros.

Por ejemplo, pedimos a las personas que proporcionen su “Motivo de inscripción” para ayudarles a decidir su idoneidad y grupo. Esto es redundante cuando las personas llegan a través de un enlace de invitación, pero no se puede ocultar si es obligatorio o se rompe el registro para ellos.

3 Me gusta

Hola,

Hay algunos campos de usuario en mi sitio que realmente no necesitan estar presentes al registrarse, como las redes sociales.

Creo que podríamos beneficiarnos de una opción “No mostrar al registrarse”, que los oculte durante el registro y solo los haga visibles al editar el perfil de usuario.

6 Me gusta

Ya puedes lograr esto a través de CSS:

¡Pero sí, sería muy bueno tener esto como una opción explícita! Se ha solicitado varias veces.

He combinado todos los temas de Feature en este Tema.

4 Me gusta

También tuvo algo de repercusión en este tema:

11 Me gusta

¿Ha cambiado algo en la ventana modal de registro que pueda hacer que este CSS ya no funcione?

No puedo ocultar ningún campo personalizado en la página de registro utilizando el código de la primera publicación de @pfaffman, ni puedo ocultar todos los campos personalizados utilizando el código de @awesomerobot:

He estado aplicando el CSS en Temas > Común > CSS.

2 Me gusta

Parece que se agregó CSS más específico en otra parte de Discourse, y eso está anulando display:none

.d-modal.create-account .user-field {
  display: flex;
}

Le echaré un vistazo rápido a :point_up: y veré si necesitamos ser tan específicos, pero mientras tanto, esta actualización :point_down: debería funcionar:

.d-modal.create-account div[class*="user-field-"] {
  display: none;
}
2 Me gusta

¡Confirmado, esto funcionó perfectamente para ocultarlos todos!

Muchas gracias Kris @awesomerobot :smiley:

1 me gusta

Se agregó una configuración para ocultar campos de usuario del formulario de registro:

3 Me gusta

Este tema se cerró automáticamente 3 días después de la última respuesta. Ya no se permiten nuevas respuestas.