Un certo numero di utenti della nostra community ha richiesto l’aggiunta di un campo personalizzato nel profilo utente per i loro nomi utente Fediverse. È facile da aggiungere.
Ho sperimentato la possibilità di rendere questo campo ricercabile. Ho trovato un post che descrive come funziona, ma la mia versione attuale di Discourse (aggiornata) non presenta un’interfaccia simile. Vedo dei risultati nel campo di ricerca rapida (etichettato con il valore, il che è positivo) e la ricerca espansa mostra gli utenti corrispondenti.
Ma… non sta raccogliendo tutte le corrispondenze. Abbiamo almeno altri 3 utenti (incluso me) che hanno inserito “mastodon” in questo campo personalizzato. C’è forse un ritardo nell’indicizzazione?
Inoltre, stavo davvero cercando un modo per eseguire una ricerca o una query per generare un elenco di tutti gli utenti che hanno inserito un valore in questo campo (ad esempio, mostrami tutti gli utenti con un nome utente Fediverse). Si tratta di un lavoro di query personalizzata? Come potrei farlo?
Ciò potrebbe essere fatto con il Plugin Data Explorer utilizzando una query SQL come:
SELECT ucf.user_id,
ucf.value,
ucf.updated_at AS reltime$time
FROM user_custom_fields ucf
WHERE ucf.name = 'user_field_1'
AND ucf.value IS NOT NULL
ORDER BY ucf.updated_at DESC
Dove 'user_field_1' sarebbe il campo utente personalizzato sul tuo sito che stai cercando di visualizzare. Nota che Discourse utilizza user_field_1, user_field_2, user_field_3, ecc. come nomi per i campi utente personalizzati all’interno della tabella user_custom_fields anziché il nome di testo dei campi nella pagina Personalizza → Campi utente.
Se volessi, potresti ottenere un elenco di tutti i nomi dei campi utente personalizzati sul tuo sito e il loro corrispondente numero user_field con:
SELECT uf.id, uf.name
FROM user_fields uf
Dove l’ID del campo utente sarebbe il nome user_field_X all’interno della tabella user_custom_fields.
Tenendo conto di ciò, non sono sicuro del motivo per cui non saresti in grado di cercare i tuoi campi utente nella finestra di ricerca, purché il campo utente sia ricercabile.
Potresti provare a utilizzare il menu di ricerca avanzata e selezionare “Utenti” come luogo in cui cercare e vedere se ottieni gli stessi risultati:
Grazie Alex, il plugin Data Explorer ha funzionato benissimo (è la prima volta che lo uso).
La ricerca sotto Utente non funziona affatto. I valori qui sono nomi utente fediverse e la mia voce è
@cogdog@mastodon.social
ma non ottengo risultati quando cerco negli Utenti la stringa ‘mastodon’. Non esegue corrispondenze parziali di stringa? Questo non è molto critico e probabilmente disattiverò il flag ricercabile per questo campo. Speravo di fornire un modo accessibile all’utente per vedere tutti gli utenti che avevano inserito un valore per questo campo: esiste un’opzione di ricerca per la ricerca generale che possa trovare voci non vuote?