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

No creo que sea difícil agregar una clase o un atributo de datos que incluya el nombre del campo personalizado, lo que haría que sea mucho menos frágil apuntar a él con CSS. Probablemente pueda hacerlo en los próximos días.

7 Me gusta

Di un vistazo rápido y es casi idéntico a otra PR que abrí recientemente para agregar una clase a los grupos de etiquetas. Así que aquí está una PR para esto… ¿quizás deberíamos agregar un helper para sanitizar los nombres de las clases antes de fusionarlas?

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

¡Gracias! Logré hacer esto hace una o dos semanas. Podrías editar esa lista para incluir también el CSS que permita mostrar de nuevo uno o dos campos después de ocultar el resto.

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.