Diese Komponente funktioniert, indem sie einfach den Benutzernamen durch den Namen des Benutzers (falls verfügbar) ersetzt, wenn die Beiträge angezeigt werden. Beim Bearbeiten ändert sich nichts. Sie markieren @benutzername wie immer im Composer.
Sie fügt der a.mention-Anker-Element auch die Klasse .mention-fullname hinzu, falls Sie vollständige Namensnennungen auf eine bestimmte Weise gestalten möchten.
Das Anzeigen der Karte beim Klicken auf die @vollständigername-Erwähnungen bleibt voll funktionsfähig.
Stellen Sie sich eine Discourse-Instanz vor, bei der jeder Benutzername dem Muster X9999999 folgt (ein Buchstabe und sieben Zahlen). Stellen Sie sich nun vor, es sind 100.000 Benutzer registriert.
Nicht sehr benutzerfreundlich, oder? Leider ist dies ein sehr reales Szenario und kein imaginäres. Die Discourse-Instanz ist an SSO gebunden und alle Benutzernamen folgen der Unternehmensrichtlinie.
In diesem Fall ist es viel besser, @John Doe anstelle von @X9999999 zu lesen.
Einstellungen:
show_fullname_in_mentions: Wenn aktiviert, zeigen @mentions den @vollständigername anstelle des @benutzernamens an.
Ich habe es ausprobiert, aber nach dem Experimentieren sehe ich, dass es eine gewisse Inkonsistenz in Bezug auf die Benutzererfahrung verursacht.
Hier ist, was passiert: Ich habe diesen Benutzer, dessen Benutzername „oli44“ und vollständiger Name „Henri Oliver“ ist. Mit Ihrer Theme-Komponente wird jetzt „Henri Oliver“ angezeigt, was großartig ist und mehr Kontext bietet. Aber sagen wir, ich bin ein anderer Benutzer, der nicht weiß, dass „Henri Oliver“ unter dem Benutzernamen „oli44“ bekannt ist. Wie erwähne ich ihn dann in meinem Beitrag?
Ich werde nach „Henri Oliver“ suchen und tatsächlich „oli44“ sehen, aber woher weiß ich, dass es die tatsächliche Person ist?
Aus diesem Grund werde ich es vorerst nicht aktivieren. Kennen Sie vielleicht eine andere Theme-Komponente/Plugin, die dieses Problem lösen würde? Ich habe versucht, danach zu suchen, konnte aber nichts finden.
Oder vielleicht gibt es eine Möglichkeit, wie Ihre Theme-Komponente immer noch den Benutzernamen anzeigen könnte (z. B. @Henri Oliver (oli44)), damit ich weiß, wonach ich suchen muss, wenn ich diese Person erwähnen muss?
Trotzdem vielen Dank für diese großartige Ergänzung.
Es wird eine Ajax-Anfrage pro Erwähnung an den Server gesendet.
Könnte dies zu Drosselungen auf Seiten mit vielen Benutzernamen führen (wie z. B. benutzergenerierte Benutzerverzeichnisse)?
Die zwischengespeicherte Zuordnung von Benutzernamen zu vollständigen Namen erkennt keine Änderungen an den vollständigen Namen. Wie lange lebt dieser Cache?
Ich frage mich, ob die benötigten Informationen (Benutzername → vollständiger Name) über ein Begleit-Plugin bereitgestellt werden könnten, was diese Probleme überflüssig machen würde.
Waren Ajax-Anfragen zwingend erforderlich, wenn wir bei einer Theme-Komponente bleiben wollten?
Wenn dies der Fall ist, lade ich Sie ein, ein neues #plugin-Thema zu erstellen, wenn Sie Ihre Arbeit als zuverlässig genug erachten, um von anderen genutzt zu werden
Ich weiß es nicht. Da ich mich nur mit der Plugin-/Komponentenentwicklung beschäftige, habe ich mich entschieden, diese beiden Hacks zu sammeln, um das gewünschte Verhalten zu erzielen.
Aber vielleicht möchten sich andere anschließen, um es zu verfeinern.
Sie haben das gerade gepostet und ich habe gerade das Plugin des Originalautors installiert, als Sie gepostet haben. Die Sache ist, mir ist aufgefallen, dass das Plugin des Originalautors keine vollständigen Namen für Gruppen unterstützt. Es sieht jedoch so aus, als hätten Sie Gruppen hinzugefügt. Wenn ja, herzlichen Glückwunsch! Ihr Plugin verdient einen eigenen Thread, angesichts dessen, was Sie ermöglicht haben!
Vielleicht mache ich etwas falsch, aber ich habe Ihre Theme-Komponente und Ihr Plugin aktiviert und sehe den vollständigen Namen in Erwähnungen nicht mehr.
Danke! Das habe ich jetzt auch. Wäre es auch möglich, Gruppen zu durchsuchen? Ich habe meine trust_level_0-Gruppe als „everyone“ benannt. Wenn das Plugin auch den vollständigen Namen für die Gruppen-Erwähnungen verwenden könnte, wäre dies eine coole Möglichkeit, globale trust_level_0-Erwähnungen wie eine „everyone“-Erwähnung aussehen zu lassen.
Da das Plugin die Informationen beim Backen der Beiträge einbezieht. Beachten Sie, dass, wenn der Benutzer den vollständigen Namen aktualisiert, dieser im Beitrag nicht aktualisiert wird, es sei denn, der Beitrag wird neu gebacken.
Ich muss ein paar Dinge in dieser Theme-Komponente aktualisieren. Das Entfernen von Ajax-Aufrufen ist jetzt möglich, wenn der Benutzerstatus aktiviert ist.
Es funktioniert größtenteils. Ich bin mir nicht sicher warum, aber obwohl ich Vertrauensstufe 0 in “Jeder” umbenannt habe, wird das Label nicht angewendet.
EDIT: Ah, weil die Spalte full_name in der Tabelle groups nicht den modifizierten vollständigen Namen von Vertrauensstufengruppen enthält! Wenn ich den Daten-Explorer überprüfe, ist er null. Hmm?
In der Tat. Ich habe das versucht, und es hat ohne ernsthafte Auswirkungen funktioniert. Gibt es eine Möglichkeit, Gruppen zu integrieren, ohne das Plugin verwenden zu müssen und nur die Theme-Komponente zu verwenden? Das wäre mir tatsächlich lieber, da ich das Raking nicht mag, wenn ich es vermeiden kann.