Discourse afficher le nom complet dans les mentions

|||
|-|-|-|
| :eyeglasses:|Prévisualisation| https://theme-creator.discourse.org/theme/megothss/discourse-show-name-mentions |
| :hammer_and_wrench:|Dépôt| GitHub - megothss/discourse-show-name-mentions: A discourse theme component to display the full name instead of usernames in @mentions |
| :question:|Guide d’installation|Comment installer un thème ou un composant de thème|
| :open_book:|Nouveau aux thèmes Discourse ?| Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Un composant de thème pour afficher le nom complet au lieu des noms d’utilisateur dans les @mentions.

Ce composant de thème charge le nom complet de l’utilisateur et affiche @nomcomplet au lieu de @nomdutilisateur dans les mentions.

Ce composant fonctionne en remplaçant simplement le nom d’utilisateur par le nom de l’utilisateur (si disponible) lors de l’affichage des publications. Rien ne change lors de l’édition. Vous continuez à taguer @nomdutilisateur comme d’habitude dans le compositeur.

Il ajoute également la classe .mention-fullname à l’élément d’ancrage a.mention si vous souhaitez styliser les mentions de nom complet d’une manière distincte.

L’affichage de la carte lors du clic sur les mentions @nomcomplet reste entièrement fonctionnel.

Cas d’utilisation :

Imaginez une instance Discourse où chaque nom d’utilisateur suit le modèle X9999999 (une lettre et sept chiffres). Imaginez maintenant qu’il y ait 100 000 utilisateurs enregistrés.

Pas très convivial, n’est-ce pas ? Malheureusement, c’est un scénario très réel et non imaginaire. L’instance Discourse est liée au SSO et tous les noms d’utilisateur suivent la politique de l’entreprise.

Il est beaucoup préférable dans ce cas de lire @John Doe au lieu de @X9999999.

Paramètres :

  • show_fullname_in_mentions : S’il est activé, les @mentions afficheront le @nomcomplet au lieu du @nomdutilisateur
17 « J'aime »

Bonjour Sérgio, merci pour le composant de thème !

Je l’ai essayé mais après avoir expérimenté, je constate qu’il crée une certaine incohérence en termes d’expérience utilisateur.

Voici ce qui se passe : j’ai cet utilisateur dont le nom d’utilisateur est “oli44” et le nom complet “Henri Oliver”. Avec votre composant de thème, il affiche maintenant “Henri Oliver”, ce qui est excellent et ajoute un meilleur contexte. Mais ensuite, disons que je suis un autre utilisateur qui ne sait pas que “Henri Oliver” est connu sous le nom d’utilisateur “oli44”, comment puis-je le mentionner dans mon message ?

Je vais rechercher “Henri Oliver” et je verrai en effet “oli44”, mais comment puis-je savoir que c’est la personne réelle ?

Pour cette raison, tel quel, je ne l’activerai pas pour le moment. Connaissez-vous éventuellement un autre composant de thème/plugin qui résoudrait ce problème ? J’ai essayé de chercher mais je n’ai rien trouvé.

Ou peut-être y a-t-il un moyen pour que votre composant de thème affiche toujours le nom d’utilisateur (par exemple : @Henri Oliver (oli44)) afin que lorsque j’ai besoin de mentionner cette personne, je sache quoi rechercher (?)

Merci quand même pour cet excellent ajout.

3 « J'aime »

Il suffit de taper @ suivi de Henri Oliver. Après confirmation, @+nom d'utilisateur sera inséré dans votre message.

Lors de la recherche, le nom d’utilisateur et le nom complet sont tous deux affichés.
Où est le problème ?

Vous pouvez personnaliser le rendu dans une fork facilement :

1 « J'aime »

Je vois deux problèmes :

Il y aura une requête ajax par mention vers le serveur.
Cela pourrait-il entraîner une limitation dans les pages contenant de nombreux noms d’utilisateur (comme les annuaires d’utilisateurs fournis par l’utilisateur) ?

La traduction mise en cache du nom d’utilisateur vers le nom complet ne reconnaîtra pas les changements de nom complet. Quelle est la durée de vie de ce cache ?

Je me demande si les informations nécessaires (nom d’utilisateur → nom complet) pourraient être fournies via un plugin compagnon, ce qui rendrait ces problèmes obsolètes.

Puisque nous rencontrions les problèmes attendus, j’ai créé un plugin qui fournit les noms complets ainsi que les mentions :

En conséquence, la requête ajax a été supprimée du composant.

J’ai également ajouté une option pour configurer le modèle utilisé pour le rendu des mentions :

2 « J'aime »

Les requêtes Ajax étaient-elles obligatoires si nous voulions nous en tenir à un composant de thème ?

Si tel est le cas, je vous invite à créer un nouveau sujet Plugin, si vous considérez que votre travail est suffisamment fiable pour être utilisé par d’autres :slight_smile:

Je ne suis pas autorisé à écrire dans cette catégorie…

Je ne sais pas. Comme je ne fais que me pencher sur le développement de plugins / composants, j’ai choisi de collecter ces deux hacks, pour obtenir le comportement souhaité.

Mais peut-être que d’autres aimeraient se joindre pour l’améliorer.

1 « J'aime »

Vous devez demander l’accès sur la page du groupe :slight_smile:

https://meta.discourse.org/g/plugin_authors

1 « J'aime »

Vous venez de publier ceci et je viens d’installer le plugin de l’auteur original juste au moment où vous avez posté. Le fait est que j’ai remarqué que le plugin de l’auteur original ne prend pas en charge les noms complets pour les groupes. Cependant, il semble que vous ayez ajouté des groupes. Si c’est le cas, félicitations ! Votre plugin mérite son propre fil de discussion compte tenu de ce que vous avez activé !

Peut-être que je ne fais pas quelque chose correctement, mais j’ai activé votre composant de thème et votre plugin et je ne vois plus le nom complet dans les mentions.

Avez-vous refait la cuisson de vos publications ?

1 « J'aime »

Merci ! Je l’ai fait maintenant. La recherche de groupes serait-elle également possible ? J’ai mon groupe trust_level_0 nommé everyone. Si le plugin pouvait également utiliser le nom complet pour les mentions de groupe, ce serait un moyen intéressant de faire ressembler les mentions globales trust_level_0 à une mention everyone.

Il le fait maintenant (vous devez également mettre à jour le composant).

Malheureusement, le lien du nom du groupe ne s’ouvrira pas sur le groupe lorsqu’on clique dessus.

1 « J'aime »

Étant donné que le plugin inclut les informations lors du rebâtissage des messages. Sachez que si l’utilisateur met à jour le nom complet, il ne sera pas mis à jour dans le message à moins que le message ne soit rebâti.

Je dois mettre à jour quelques éléments dans ce composant de thème. La suppression des appels Ajax est maintenant possible si le statut de l’utilisateur est activé.

J’essaierai de le faire bientôt.

2 « J'aime »

Exactement. Il devrait surveiller les changements de nom d’utilisateur et de groupe :

2 « J'aime »

La refonte est coûteuse. Cela peut poser problème dans certaines communautés, en fonction de la fréquence à laquelle les utilisateurs changent de nom.

Gardez cela à l’esprit.

1 « J'aime »

Merci. Dans notre communauté scolaire plus formelle, les noms ne changeront pas fréquemment.

En principe, les noms pourraient être ajoutés tout en expédiant du contenu déjà préparé. Il semble que vous préféreriez cette voie ?

Cela fonctionne la plupart du temps. Je ne suis pas sûr pourquoi, mais même si j’ai renommé le niveau de confiance 0 en tout le monde, cela ne lui applique pas le label.


Les groupes qui ne sont pas de niveau de confiance fonctionnent tous et affichent leurs noms complets.

EDIT : Ah, parce que la colonne full_name dans la table groups ne contient pas la valeur du nom complet modifié des groupes de niveaux de confiance ! En vérifiant l’explorateur de données, elle est nulle. Hmm ?

D’après l’image ci-dessus, il semble que vous ayez modifié les entrées i18n pour trust_level_0.

Essayez Group.find(10).update! full_name: \"TESTTEST\" dans la console Rails.

Cela pourrait avoir des effets secondaires, étant donné que la modification des noms complets des groupes intégrés n’est pas autorisée dans l’interface utilisateur.

En effet. J’ai essayé cela et cela a fonctionné sans impact majeur. Existe-t-il un moyen d’intégrer des groupes sans avoir à utiliser le plugin et uniquement le composant de thème ? C’est en fait préférable pour moi car je n’aime pas avoir à utiliser des outils externes si je peux l’éviter.