Accès aux champs utilisateur personnalisés via l'API JavaScript/plugin

Bonjour, j’essayais d’implémenter Our solution for blurring NSFW content - #5 by bartv - mais malheureusement le code ne fonctionne plus.
Je suis un peu bloqué ici et je n’ai trouvé aucune documentation pour l’API JavaScript de Discourse en général ou comment récupérer les champs personnalisés des utilisateurs.

J’ai essayé d’ajouter l’extrait de code lié à la section header.html du thème de mon site.
L’objet accessible en JavaScript const user = api.getCurrentUser(); semble contenir une propriété custom_fields et non user_fields comme dans le post référencé.

Cependant, il est vide, ou je ne sais pas comment le requêter/remplir correctement. J’ai l’impression qu’il me faudrait un plugin Ruby pour accéder à ces données.

J’apprécierais grandement toute aide sur ce problème, ou des conseils sur la façon de faire fonctionner à nouveau la même fonctionnalité.
La fonctionnalité dont j’ai besoin est d’ajouter une classe CSS personnalisée au corps en fonction d’un champ utilisateur personnalisé.

Merci de m’avoir lu o/

Si vous regardez la sortie .json d’un profil utilisateur, vous verrez l’enregistrement user_fields (comme https://meta.discourse.org/u/pfaffman.json, sauf qu’il n’y a pas de champs personnalisés ici). C’est là que se trouvent les champs utilisateur que vous ajoutez dans l’UX (ce sont en fait un type spécial de user_custom_field. Les user_custom_fields ne semblent pas se trouver dans l’enregistrement utilisateur dans un flux de sujet. Je ne suis pas sûr s’ils y étaient autrefois et ont maintenant disparu (ce serait probablement un bug). Vous devez vous assurer que vos champs utilisateur sont visibles dans ces paramètres (afficher sur la carte utilisateur, peut-être ?).

D’après ce que je vois maintenant, vous devez créer un plugin qui ajoutera ces champs personnalisés au sérialiseur.

Si vous pouviez utiliser des groupes au lieu de votre champ utilisateur personnalisé, vous pourriez résoudre votre problème.

2 « J'aime »

C’est là que se trouvent les champs utilisateur que vous ajoutez dans l’UX (il s’agit en fait d’un type spécial de user_custom_field)

Je vois, cela explique la nomenclature des variables. Merci.

Je pense que le point de terminaison /u/user.json n’expose que les champs publics puisqu’il est accessible publiquement. Compte tenu de la nature du problème, je doute que les gens veuillent que leurs préférences NSFW soient exposées sur leur carte utilisateur. Je vais donc d’abord chercher à utiliser les groupes comme solution de contournement :smiley:

2 « J'aime »