Discourse API Aktuelles Thema abrufen

Hallo!

Ich habe gesehen, dass das Discourse-API-Skript-Plugin den aktuellen Benutzer abrufen kann:

<script type="text/discourse-plugin" version="0.8.18">
    if(api.getCurrentUser() != null) {
        $("#logged-in-user").text(" " + api.getCurrentUser().username);
    }
</script>

Gibt es einen ähnlichen Befehl, um das aktuelle Thema zu erhalten? Mein Anwendungsfall besteht darin, die URL des Redirect-Buttons am Ende eines Beitrags auf einen vorausgefüllten Link zu einer privaten Nachricht an den Originalersteller zu ändern. Um den Benutzernamen des Originalerstellers zu finden, müsste ich wohl zuerst die Topic-ID abrufen und dann den Originalersteller über "/t/<TOPIC_ID>.json" abfragen?

Das Button-Plugin hat <TOPIC_ID> bereits integriert, aber ich bin mir nicht sicher, wie das mit JavaScript unter Admin > Anpassung umgesetzt werden kann. Vielen Dank!

Ich bin mir nicht sicher, ob dies der beste Ansatz ist, aber es ist möglich, den Benutzernamen des Themas erstellers wie folgt zu erhalten:

const controller = Discourse.__container__.lookup("controller:topic")
const username = controller.get("model.details.created_by.username")

Dies funktioniert nicht direkt im <script>-Tag. Sie sollten es wahrscheinlich in einem api.onPageChange oder einem anderen Event verwenden (in einem schnellen Test funktionierte es auch mit einem setTimeout von 0 ms, aber ich weiß nicht, ob es Nebeneffekte gibt).

2 „Gefällt mir“