Zugriff auf benutzerdefinierte Benutzerfelder über JavaScript/Plugin-API

Hallo, ich habe versucht, Our solution for blurring NSFW content - #5 by bartv zu implementieren – aber leider funktionierte der Code nicht mehr.
Ich stecke hier irgendwie fest und konnte keine Dokumentation für die Discourse JavaScript API im Allgemeinen oder wie man benutzerdefinierte Benutzerfelder abruft, finden.

Ich habe versucht, den verlinkten Codeausschnitt zum header.html-Bereich des Themes meiner Website hinzuzufügen.
Das in JavaScript zugängliche Objekt const user = api.getCurrentUser(); scheint eine Eigenschaft custom_fields zu enthalten, nicht user_fields, wie im referenzierten Beitrag.

Es ist jedoch leer, oder ich weiß nicht, wie ich es richtig abfragen/füllen kann. Ich habe das Gefühl, dass ich ein tatsächliches Ruby-Plugin benötigen würde, um auf diese Daten zuzugreifen.

Ich würde mich sehr über jede Hilfe bei diesem Problem oder eine Anleitung freuen, wie ich dieselbe Funktionalität wieder zum Laufen bringe.
Das Feature, das ich benötige, ist das Hinzufügen einer benutzerdefinierten CSS-Klasse zum Body, abhängig von einem benutzerdefinierten Benutzerfeld.

Danke fürs Lesen o/

Wenn Sie sich die .json-Ausgabe eines Benutzerprofils ansehen, sehen Sie den user_fields-Datensatz (wie https://meta.discourse.org/u/pfaffman.json, außer dass hier keine benutzerdefinierten Felder vorhanden sind). Dort befinden sich die Benutzerfelder, die Sie in der Benutzeroberfläche hinzufügen (sie sind eigentlich eine spezielle Art von user_custom_field). Die user_custom_fields scheinen nicht im Benutzerdatensatz in einem Topic-Stream vorhanden zu sein. Ich bin mir nicht sicher, ob sie einmal dort waren und jetzt weg sind (das wäre wahrscheinlich ein Fehler). Sie müssen sicherstellen, dass Ihre Benutzerfelder in diesen Einstellungen sichtbar sind (z. B. auf der Benutzerkarte anzeigen?).

Nach allem, was ich jetzt sehe, müssen Sie ein Plugin erstellen, das diese benutzerdefinierten Felder zum Serializer hinzufügt.

Wenn Sie Gruppen anstelle Ihres benutzerdefinierten Benutzerfeldes verwenden könnten, könnten Sie Ihr Problem lösen.

2 „Gefällt mir“

„Das sind die Benutzerfelder, die Sie in der UX hinzufügen (sie sind eigentlich eine spezielle Art von user_custom_field)“

Ich verstehe, das erklärt die Variablennamen. Danke.

Ich denke, der Endpunkt /u/user.json gibt nur öffentliche Felder preis, da er öffentlich zugänglich ist. Aufgrund der Art des Problems bezweifle ich, dass Leute ihre NSFW-Präferenzen auf ihrer Benutzerkarte preisgeben möchten. Daher werde ich zuerst prüfen, ob Gruppen als Workaround verwendet werden können :smiley:

2 „Gefällt mir“