Este componente funciona simplesmente substituindo o nome de usuário pelo nome do usuário (se disponível) ao exibir as postagens. Nada muda durante a edição. Você ainda marca @nomedeusuário como sempre no compositor.
Ele também adiciona a classe .mention-fullname ao elemento âncora a.mention se você desejar estilizar as menções de nome completo de forma distinta.
A exibição do cartão ao clicar nas menções @nomedeusuario permanece totalmente funcional.
Imagine uma instância do Discourse onde cada nome de usuário segue o padrão X9999999 (uma letra e sete números). Agora imagine que há 100 mil usuários registrados.
Não é muito amigável, certo? Infelizmente, este é um cenário muito real e não imaginário. A instância do Discourse está vinculada ao SSO e todos os nomes de usuário seguem a política corporativa.
É muito melhor neste caso ler @John Doe em vez de @X9999999.
Configurações:
show_fullname_in_mentions: Se ativado, as menções @ mostrarão o @nomedeusuario em vez do @nomedeusuário
Eu tentei, mas depois de experimentar, vejo que ele cria alguma inconsistência em termos de UX.
É o que acontece: tenho este usuário cujo nome de usuário é “oli44” e nome completo “Henri Oliver”. Com o seu componente de tema, agora exibe “Henri Oliver”, o que é ótimo e adiciona melhor contexto. Mas então, digamos que eu sou outro usuário que não sabe que “Henri Oliver” atende pelo nome de usuário “oli44”, como posso mencioná-lo em minha postagem?
Vou procurar por “Henri Oliver” e de fato verei “oli44”, mas como posso saber que é a pessoa real?
Por esse motivo, como está, finalmente não o ativarei por enquanto. Você conhece algum outro componente de tema/plugin que resolveria esse problema? Tentei procurar por isso, mas não consegui encontrar.
Ou talvez haja uma maneira de o seu componente de tema ainda mostrar o nome de usuário (por exemplo: @Henri Oliver (oli44)) para que, quando eu precisar mencionar essa pessoa, eu saiba o que procurar?
Haverá uma requisição ajax por menção ao servidor.
Isso pode levar a limitação em páginas com muitos nomes de usuário (como diretórios de usuários fornecidos pelo usuário)?
A tradução de nome de usuário para nome completo em cache não reconhecerá alterações no nome completo. Quanto tempo vive este cache?
Gostaria de saber se a informação necessária (nome de usuário → nome completo) poderia ser fornecida através de um plugin complementar, o que tornaria essas questões obsoletas.
Não tenho permissão para escrever nessa categoria…
Não sei. Como estou apenas investigando o desenvolvimento de plugins/componentes, escolhi coletar esses dois hacks para obter o comportamento desejado.
Mas talvez outros queiram se juntar para aprimorá-lo.
Você acabou de postar isso e eu acabei de instalar o plugin do autor original assim que você postou. A questão é que notei que o plugin do autor original não suporta nomes completos para grupos. No entanto, parece que você adicionou grupos. Se sim, parabéns! Seu plugin merece seu próprio tópico, dado o que você habilitou!
Obrigado! Agora eu fiz. A pesquisa de grupos também seria possível? Eu tenho meu grupo trust_level_0 chamado everyone. Se o plugin também pudesse usar o nome completo para as menções de grupo, esta seria uma maneira legal de fazer as menções globais trust_level_0 parecerem menções de everyone.
Como o plugin inclui as informações ao assar os posts. Esteja ciente de que, se o usuário atualizar o nome completo, ele não será atualizado no post, a menos que o post seja re-assado.
Preciso atualizar algumas coisas neste componente de tema. Remover as chamadas Ajax agora é possível se o status do usuário estiver habilitado.
Funciona na maioria das vezes. Não tenho certeza por quê, mas mesmo que eu tenha o nível de confiança 0 renomeado para todos, ele não aplica o rótulo a ele.
EDIT: Ah, porque a coluna full_name na tabela groups não contém o valor modificado do nome completo dos grupos de nível de confiança! Verificando o explorador de dados, está nulo. Hmm?
De fato. Tentei isso e funcionou sem nenhum impacto sério. Existe alguma maneira de incorporar grupos sem ter que usar o plugin e apenas usando o componente de tema? Isso é realmente preferível para mim, já que não gosto de ter que fazer “raking” se puder evitar.