Es sollte in einer Theme-Komponente machbar sein. Die Benutzer-ID ist ohne eine zusätzliche Anfrage verfügbar, sodass Sie nur etwas JavaScript benötigen, um sie in einem Plugin-Outlet auf der Profilseite anzuzeigen.
Nun, da eine UID unveränderlich (sich niemals ändernd) ist, kann sie wie ein permanenter Fingerabdruck für das Konto einer Person fungieren. Benutzernamen können sich ändern, sodass sie bei Support-Tickets sofort das Konto, die Transaktionen, die Authentifizierungssitzungen usw. finden können. UIDs können nicht gefälscht werden und sind für immer einzigartig.
Ich möchte, dass die UID bei jedem neuen Benutzer um 1 erhöht wird.
@Moin Danke für die Antwort, sie war hilfreich. Ja, ich kann die Antwort unter Netzwerk → XHR → Antwort anzeigen. Perfekt. Aber ich weiß nicht, wie ich die UID im Benutzerkonto-Profil anzeigen kann. Ich möchte sie hier anzeigen: https://mydomain.com/u//preferences/account
Aber innerhalb der Komponenten zum Erstellen gibt es nur diese Optionen: , Vor dem Header, Nach dem Header und Footer
/my/preferences/account ist nicht öffentlich; andere Benutzer können dies nicht sehen, aber je nach Ihrem Anwendungsfall könnte es für den Benutzer selbst ausreichend sein, seine ID zu sehen.
Sie müssen einen Plugin-Outlet finden, der sich in der Nähe der Stelle befindet, an der Sie die Informationen anzeigen möchten. Ich verwende normalerweise die Schaltfläche in der Entwickler-Toolbar, um sie in einem Forum sichtbar zu machen. Wenn Sie sie im Forum sehen, ist es einfacher für mich, den besten Outlet zu finden. Weitere Informationen zum Anzeigen von etwas in einem Outlet finden Sie unter Theme Developer Tutorial: 1. Introduction
Okay, wenn ich möchte, dass es jeder sehen kann (öffentlich), würde ich es hier einfügen: mydomain.com/u/<user-summary>
Daher denke ich, dass user-profile-secondary durch die Verwendung von enableDevTools() in der Browserkonsole ein guter Ort sein wird.
Ich werde es jetzt versuchen.
Ich stecke fest. Wie bekomme ich die id des Benutzers, den ich gerade ansehe? Weil api.getCurrentUser den angemeldeten Benutzer zurückgibt.
Custom Components -- add button or text at any plugin outlet ist ein Beispiel dafür, wie man Text an jeder Stelle einfügt, an der es einen Plugin-Outlet gibt. Ich denke, Sie müssen Ihre eigene Theme-Komponente erstellen, um Zugriff auf die user_id zu erhalten.
Ich denke, Sie würden etwas Ähnliches tun, wenn Sie Ihre Komponente aufrufen:
Aufbauend auf dem obigen Beitrag von @pfaffman können Sie dann eine Komponente erstellen, die {{@user.id}} verwendet. Siehe Theme Developer Tutorial: 5. Building and using components, aber ich denke, Sie können dies in der Discourse TC UI unter „CSS/HTML bearbeiten“ > „JS“ tun, indem Sie api.renderInOutlet() verwenden.
Ja, api.renderInOutlet() war sehr hilfreich. Mein Problem, das jetzt irrelevant ist, da ich es anders angegangen bin, war, dass ich nicht wusste, wie ich die user.id des gerade angezeigten Profils abrufen konnte.
Ich denke, es wäre einfacher, wenn Sie eine Steckdose wählen, die das Modell des Benutzers bereitstellt, dessen Seite Sie gerade ansehen.
Die von Ihnen gewählte Steckdose bietet Informationen zum Thema, aber nicht zu Benutzern
Die Outlets auf dem Benutzerprofil wie user-post-names stellen das Benutzermodell bereit:
Mit einem Outlet, das das Modell bereitstellt, sollten Sie @outletArgs wie im Beispiel unter Theme Developer Tutorial: 4. Using Outlets to insert and replace content verwenden können. Das Beispiel dort verwendet discovery-list-container-top, das @outletArgs={{lazyHash category=@model.category tag=@model.tag}} bereitstellt
Deshalb würde ich eine Steckdose wählen, die das Benutzermodell bereitstellt. Sie können das Modell sehen, wenn Sie über die Steckdose fahren und die ID des Benutzers sehen, dessen Profil Sie sich ansehen. Viele Beispiele im Tutorial verwenden den currentUser-Dienst, der die ID des handelnden Benutzers bereitstellt, was nicht das zu sein scheint, wonach Sie suchen.