C’è un modo per gli utenti di vedere il proprio ID utente quando qualcuno visualizza il proprio profilo?
Al momento, gli ID sono visibili solo agli amministratori tramite la dashboard, ma vorrei che gli utenti potessero visualizzare pubblicamente il proprio ID.
È qualcosa che può essere abilitato tramite le impostazioni di amministrazione, un componente o un plugin?
Fatemi sapere! Per favore
Dovrebbe essere fattibile in un componente tema. L’ID utente è disponibile senza una richiesta aggiuntiva, quindi avresti bisogno solo di un po’ di JavaScript per mostrarlo in un plugin outlet sulla pagina del profilo.
Poiché un UID è immutabile (non cambia mai), può fungere da impronta digitale permanente per l’account di qualcuno. I nomi utente possono cambiare, quindi per i ticket di supporto può trovare istantaneamente il loro account, le transazioni, le sessioni di autenticazione, ecc… L’UID non può essere falsificato ed è unico per sempre.
Vorrei che l’UID si incrementasse di 1 con ogni nuovo utente.
@Moin Grazie per la risposta, è stata utile. Sì, posso visualizzare la risposta in Network → XHR → Response. Perfetto. Ma non so come mostrare l’UID sul profilo dell’account utente. Voglio visualizzarlo qui: https://mydomain.com/u//preferences/account
Ma all’interno della creazione dei componenti ci sono solo queste opzioni: , Before Header, After Header e Footer
/my/preferences/account non è pubblico; altri utenti non possono vederlo, ma in base al tuo caso d’uso, potrebbe essere sufficiente che l’utente stesso veda il proprio ID.
Devi trovare un plugin outlet vicino a dove vuoi mostrare le informazioni. Di solito uso il pulsante nella barra degli strumenti per sviluppatori per renderli visibili su un forum. Vederli all’interno del forum mi facilita trovare l’outlet migliore. Puoi trovare maggiori informazioni su come mostrare qualcosa in un outlet nel tutorial Theme Developer Tutorial 1: Introduction
Quindi, se voglio che tutti lo vedano (pubblico), lo inserirei in: mydomain.com/u/<riepilogo-utente>
Quindi, usando enableDevTools() nella console del browser, penso che user-profile-secondary sarà un buon posto.
Ci provo ora.
Sono bloccato. Come posso ottenere l’id dell’utente che sto visualizzando? Perché api.getCurrentUser restituisce l’utente connesso.
Usando il post di @pfaffman qui sopra, puoi quindi avere un componente che utilizza {{@user.id}}. Vedi Theme Developer Tutorial: 5. Building and using components, ma penso che tu possa farlo in Modifica CSS/HTML > JS nell’interfaccia utente TC di Discourse, usando api.renderInOutlet().
Sì, api.renderInOutlet() è stato utilissimo. Tuttavia, il mio problema, che ora è irrilevante dato che l’ho affrontato in modo diverso, era che non sapevo come recuperare l’user.id del profilo visualizzato.
Hai qualche idea?
Penso che sarebbe più facile se scegliessi un outlet che fornisca il modello dell’utente la cui pagina stai visualizzando.
L’outlet che hai scelto offre informazioni sull’argomento ma non sugli utenti
Gli outlet sul profilo utente come `user-post-names` forniscono il modello utente:
https://github.com/discourse/discourse/blob/5b6d32804a1eb658fdc043b082336a17b4c1c944/frontend/discourse/app/templates/user.gjs#L220-L224
Con un outlet che fornisce il modello dovresti essere in grado di usare `@outletArgs` come nell'esempio in https://meta.discourse.org/t/theme-developer-tutorial-4-using-outlets-to-insert-and-replace-content/357799. L'esempio lì usa `discovery-list-container-top` che fornisce `@outletArgs={{lazyHash category=@model.category tag=@model.tag}}`
Ecco perché sceglierei un outlet che fornisce il modello utente. Puoi vedere il modello quando passi il mouse sull’outlet e vedi l’ID dell’utente il cui profilo stai guardando. Molti esempi nel tutorial usano il servizio currentUser, che fornisce l’ID dell’utente che sta agendo, che non sembra essere quello che stai cercando.