Ciao, stavo cercando di implementare Our solution for blurring NSFW content - #5 by bartv - ma sfortunatamente il codice non ha più funzionato.
Sono un po’ bloccato qui e non sono riuscito a trovare alcuna documentazione per l’API JavaScript di Discourse in generale o su come recuperare campi utente personalizzati.
Ho provato ad aggiungere lo snippet di codice collegato alla sezione header.html nel tema del mio sito.
L’oggetto accessibile in JavaScript const user = api.getCurrentUser(); sembra contenere una proprietà custom_fields non user_fields come nel post di riferimento.
Tuttavia è vuoto, o non so come interrogarlo/compilarlo correttamente. Ho la sensazione che avrei bisogno di un vero plugin Ruby per accedere a questi dati.
Apprezzerei molto qualsiasi aiuto su questo problema, o una guida su come ottenere nuovamente la stessa funzionalità.
La funzionalità di cui ho bisogno è aggiungere una classe CSS personalizzata al body a seconda di un campo utente personalizzato.
Se guardi l’output .json di un profilo utente, vedrai il record user_fields (come https://meta.discourse.org/u/pfaffman.json, tranne che qui non ci sono campi personalizzati). È lì che si trovano i campi utente che aggiungi nell’UX (sono in realtà un tipo speciale di user_custom_field. I user_custom_fields non sembrano essere nel record utente in un flusso di argomenti. Non sono sicuro se una volta fossero lì e ora siano scomparsi (questo sarebbe probabilmente un bug). Devi assicurarti che i tuoi campi utente siano visibili in quelle impostazioni (mostra sulla scheda utente, forse?).
Da quello che vedo ora, devi creare un plugin che aggiungerà quei campi personalizzati al serializer.
Se potessi usare i gruppi invece del tuo campo utente personalizzato, potresti risolvere il tuo problema.
È qui che si trovano i campi utente che aggiungi nell’UX (sono in realtà un tipo speciale di user_custom_field)
Capisco, questo spiega la denominazione delle variabili. Grazie.
Penso che l’endpoint /u/user.json esponga solo campi pubblici poiché è accessibile pubblicamente. Data la natura della questione, dubito che le persone vogliano che le loro preferenze NSFW vengano esposte sulla loro scheda utente. Pertanto, cercherò prima di utilizzare i gruppi come soluzione alternativa