Configuração do site para ocultar campos de usuário personalizados da página de cadastro

Eu pensei que tivesse visto uma solicitação de recurso assim recentemente, mas não consigo encontrá-la.

Se você tiver vários campos personalizados do usuário, o modal de login fica desajeitado. Se houver 10 campos opcionais e 2 obrigatórios, é necessário rolar bastante para encontrar o(s) que são obrigatórios. Isso é um transtorno.

É possível ocultar esses campos com CSS assim:

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

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

}

É um certo incômodo, pois você precisa adivinhar qual nth-of-type usar por tentativa e erro, mas o que eu talvez sugira como um :bug: é que o CSS que funcionava para fazer esse modal aparecer corretamente muda de vez em quando. Parece que foi alterado na recente beta6. Isso deixa meu cliente triste, pois os campos obrigatórios não ficam visíveis, então as pessoas não conseguiam se cadastrar. Ele descobriu apenas porque alguém enviou um e-mail reclamando.

Problema resolvido!

CSS foi adicionado a esses campos, então isso não é mais um problema!

10 curtidas

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 curtidas

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 curtidas

Acabei de perceber que nunca dei um retorno após a mesclagem. Agora, na página de cadastro, todos os campos do usuário possuem uma classe no formato user-field-nome. Assim, se você tivesse um campo com o nome “termos e condições”, ele teria a classe user-field-termos-e-condicoes.

Você também pode usar um atalho para ocultar todos os campos personalizados do usuário no cadastro com:

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

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 curtidas

Aqui está uma discussão fechada sobre como resolver isso, que inclui uma solução em CSS:

No momento, para campos de usuário personalizados, as opções são:

Editável após o cadastro?
Obrigatório no cadastro?
Mostrar no perfil público?
Mostrar no cartão do usuário?

Acho que outra opção seria bastante útil:

Mostrar no formulário de cadastro?
ou
Ocultar no formulário de cadastro?

Por padrão, sem modificações em CSS personalizado, todos os campos personalizados (opcionais ou não) serão exibidos no formulário de registro. Isso limita um pouco a quantidade de campos personalizados que podem ser implementados, pois ter muitos tornará o formulário de registro sobrecarregado e potencialmente intimidador para novos usuários.

11 curtidas

Às vezes, é bom ter vários campos personalizados de usuário para solicitar informações que você não quer incomodar as pessoas com elas no cadastro. Por exemplo, você pode querer que alguém forneça seu endereço, CEP ou cor do cabelo, mas no cadastro pedir apenas o nome e o endereço de e-mail.

Isso já é possível usando um componente de tema para ocultar todos os campos personalizados e depois reexibir apenas os que você deseja. Seria ótimo se houvesse uma caixa de seleção nas configurações dos campos personalizados de usuário.

10 curtidas

Isso seria ótimo.

Também seria útil poder diferenciar inscrições e convidados, especialmente se um campo for obrigatório para ambos ou apenas para as inscrições.

Por exemplo, pedimos que as pessoas forneçam seu “Motivo para se Juntar” para ajudar a decidir sua adequação e grupo. Isso é redundante quando as pessoas chegam por meio de um link de convite, mas não pode ser ocultado se for obrigatório, pois isso quebraria o processo de inscrição para elas.

3 curtidas

Olá,

Existem alguns campos de usuário em meu site que realmente não precisam estar presentes no momento do cadastro, como as redes sociais.

Acho que poderíamos nos beneficiar de uma opção “Não exibir no cadastro”, que os ocultaria durante o cadastro e os tornaria visíveis apenas ao editar o perfil do usuário.

6 curtidas

Você já pode conseguir isso via CSS:

Mas sim, seria muito bom ter isso como uma opção explícita! Já foi solicitado algumas vezes.

Combinei todos os tópicos de Feature sobre isso neste Tópico.

4 curtidas

Também ganhou um pouco de tração neste tópico:

11 curtidas

Algo mudou no modal de inscrição que pode fazer com que este CSS não funcione mais?

Não consigo ocultar nenhum campo personalizado na página de inscrição usando o código da primeira postagem de @pfaffman - nem consigo ocultar todos os campos personalizados usando o código de @awesomerobot:

Tenho aplicado o CSS em Temas > Comum > CSS.

2 curtidas

Parece que um CSS mais específico foi adicionado em outro lugar no Discourse, e isso está substituindo display:none

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

Vou dar uma olhada rápida em :point_up: e ver se precisamos ser tão específicos, mas, enquanto isso, esta atualização :point_down: deve funcionar:

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

Confirmado, isso funcionou perfeitamente para escondê-los todos!

Muito obrigado Kris @awesomerobot :smiley:

1 curtida

Uma configuração para ocultar campos de usuário do formulário de inscrição foi adicionada:

3 curtidas

Este tópico foi fechado automaticamente 3 dias após a última resposta. Novas respostas não são mais permitidas.