Este componente funciona simplemente reemplazando el nombre de usuario con el nombre del usuario (si está disponible) al mostrar las publicaciones. Nada cambia durante la edición. Todavía etiquetas @nombredeusuario como siempre en el compositor.
También agrega la clase .mention-fullname al elemento ancla a.mention si desea estilizar las menciones de nombre completo de una manera distinta.
Mostrar la tarjeta al hacer clic en las menciones de @nombrecompleto sigue siendo completamente funcional.
Imagine una instancia de Discourse donde cada nombre de usuario sigue el patrón X9999999 (una letra y siete números). Ahora imagine que hay 100.000 usuarios registrados.
No es muy amigable, ¿verdad? Desafortunadamente, este es un escenario muy real y no imaginario. La instancia de Discourse está vinculada a SSO y todos los nombres de usuario siguen la política corporativa.
Es mucho mejor en este caso leer @John Doe en lugar de @X9999999.
Ajustes:
show_fullname_in_mentions: Si está habilitado, las menciones de @ mostrarán el @nombrecompleto en lugar del @nombredeusuario
Lo probé, pero después de experimentar, veo que crea cierta inconsistencia en la experiencia del usuario.
Esto es lo que sucede: tengo este usuario cuyo nombre de usuario es “oli44” y nombre completo “Henri Oliver”. Con tu componente temático, ahora muestra “Henri Oliver”, lo cual es genial y añade un mejor contexto. Pero luego, digamos que soy otro usuario que no sabe que “Henri Oliver” usa el nombre de usuario “oli44”, ¿cómo lo menciono en mi publicación?
Buscaré “Henri Oliver” y, de hecho, veré “oli44”, pero ¿cómo puedo saber que es la persona real?
Por esa razón, tal como está, finalmente no lo habilitaré por el momento. ¿Conoces algún otro componente temático/plugin que resuelva este problema? Intenté buscar algo así pero no pude encontrarlo.
¿O tal vez hay una manera en que tu componente temático aún pueda mostrar el nombre de usuario (por ejemplo: @Henri Oliver (oli44)) para que cuando necesite mencionar a esa persona, sepa qué buscar?
Se realizará una solicitud ajax por cada mención al servidor.
¿Podría esto provocar limitaciones en páginas con muchos nombres de usuario (como directorios de usuarios proporcionados por el usuario)?
La traducción en caché de nombre de usuario a nombre completo no reconocerá los cambios en el nombre completo. ¿Cuánto tiempo vive esta caché?
Me pregunto si la información necesaria (nombre de usuario → nombre completo) podría proporcionarse a través de un plugin complementario, lo que haría que estos problemas quedaran obsoletos.
¿Las solicitudes ajax eran obligatorias si queríamos seguir un componente temático?
Si este es el caso, te invito a crear un nuevo tema Plugin, si consideras que tu trabajo es lo suficientemente fiable como para ser utilizado por otros
No lo sé. Dado que solo estoy investigando el desarrollo de plugins/componentes, he optado por recopilar estos dos hacks para obtener el comportamiento deseado.
Acabas de publicar esto y acabo de instalar el plugin del autor original justo cuando publicaste. La cosa es que noté que el plugin del autor original no admite nombres completos para grupos. Sin embargo, parece que agregaste grupos. Si es así, ¡felicidades! ¡Tu plugin merece su propio hilo dado lo que has habilitado!
¡Gracias! Ahora lo hice. ¿También sería posible buscar grupos? Tengo mi grupo trust_level_0 llamado everyone. Si el plugin también pudiera usar el nombre completo para las menciones de grupo, esta sería una forma genial de hacer que las menciones globales de trust_level_0 parezcan una mención de everyone.
Dado que el plugin incluye la información al hornear las publicaciones. Ten en cuenta que si el usuario actualiza el nombre completo, no se actualizará en la publicación a menos que se vuelva a hornear.
Necesito actualizar algunas cosas en este componente temático. Ahora es posible eliminar las llamadas Ajax si el estado del usuario está habilitado.
Volver a hornear es costoso. Esto puede ser problemático en algunas comunidades, dependiendo de la frecuencia con la que los usuarios cambien sus nombres.
Funciona en su mayor parte. No estoy seguro de por qué, pero a pesar de que he renombrado el nivel de confianza 0 a todos, no se le aplica la etiqueta.
EDITAR: Ah, porque la columna full_name en la tabla groups no contiene el valor modificado del nombre completo de los grupos de nivel de confianza. Al revisar el explorador de datos, está nulo. ¿Hmm?
De la imagen anterior, parece que has cambiado las entradas de i18n para trust_level_0.
Prueba Group.find(10).update! full_name: "TESTTEST" en la consola de rails.
Esto podría tener efectos secundarios, considerando que no se permite cambiar los nombres completos de los grupos integrados en la interfaz de usuario.
De hecho. Intenté esto y funcionó sin ningún impacto serio. ¿Hay alguna forma de incorporar grupos sin tener que usar el plugin y solo usando el componente del tema? Eso es en realidad preferible para mí ya que no disfruto de tener que instalar plugins si puedo evitarlo.