api.onPageChange(() => {
// Controlla se esiste un elemento con ID 'topic'
if ($('#topic').length > 0) {
// Se l'elemento 'topic' esiste, trova l'attributo 'data-user-id'
var userId = $('#topic article').data('user-id');
// Controlla se l'attributo 'data-user-id' esiste
if (userId !== undefined) {
// Effettua una richiesta API per ottenere le informazioni dell'utente
apiReq(`admin/users/${userId}.json`, 'GET')
.then(data => {
// Gestisci i dati della risposta
console.log('Conteggio post utente:', data.post_count);
// Controlla se l'utente ha un valore in user_fields["1"]
if (data.user_fields && data.user_fields["1"]) {
// Visualizza il campo utente nel primo div 'names'
displayUserField(data.user_fields["1"]);
}
// Visualizza il conteggio dei post nel primo div 'names'
displayPostCount(data.post_count);
})
.catch(error => {
// Gestisci gli errori
console.error('Errore richiesta API:', error);
});
} else {
console.log('Nessun attributo data-user-id trovato');
}
} else {
console.log('Nessun elemento con ID "topic" trovato');
}
});
// Funzione per visualizzare il campo utente nel primo div 'names'
function displayUserField(userFieldValue) {
// Trova il primo div 'names'
var firstNamesDiv = $('.names:first');
// Crea un elemento span con classi 'user-title'
var userFieldSpan = $('<span></span>').addClass('user-title');
userFieldSpan.text(userFieldValue);
// Aggiungi l'elemento span al primo div 'names'
firstNamesDiv.append(userFieldSpan);
}
// Funzione per visualizzare il conteggio dei post nel primo div 'names'
function displayPostCount(postCount) {
// Trova il primo div 'names'
var firstNamesDiv = $('.names:first');
// Crea un elemento span con classi 'user-title'
var postCountSpan = $('<span></span>').addClass('user-title');
postCountSpan.text(postCount + ' posts');
// Aggiungi l'elemento span del conteggio dei post al primo div 'names'
firstNamesDiv.append(postCountSpan);
}
Per ottenere il valore post_count quando si visualizza un post o la scheda di un utente, è necessario serializzare i dati per includere questo campo. Questo può essere ottenuto solo con l’aiuto di un plugin e fare affidamento sulle richieste per utente non è una soluzione realistica.
Provalo. La parte JS si trova in assets se vuoi dare un’occhiata. Una cosa specifica che potresti aver trascurato nell’uso dell’API è la possibilità di personalizzare tramite outlets.
Fammi sapere se vuoi altre opzioni. Non so se dovrei rilasciare questo plugin dato che è piccolo, ma eccolo qui comunque:
Grazie mille per l’impegno. Ci proverò.
Il mio piano attuale era di realizzare la seguente funzionalità:
Mostra il conteggio dei post dell’utente nei post e nei commenti accanto all’avatar.
Assegna un titolo predefinito a tutti i membri di un gruppo (es: Amministratore)
Mostra il livello di fiducia accanto all’avatar
Mostra un badge accanto all’avatar.
Mostra un valore user_field accanto all’avatar.
E le opzioni sono modificabili dall’amministratore.
Ho anche pianificato di collegare il conteggio dei post in modo che altri possano fare clic e vedere l’elenco dei post.
Sebbene sia un piccolo plugin, credo che valga la pena pubblicarlo. Potresti considerare di aggiungere nuove funzionalità come suggerito.
Grazie
Argomenti creati è un’altra statistica. Vuoi aggiungere questo conteggio al conteggio dei post o aggiungere un nuovo testo in modo da avere “argomenti: xx, post: yy”?
In realtà sto cercando di ottenere qualcosa come postCount + TopicCount
Voglio semplicemente contare gli argomenti come post.
Sto anche cercando di mostrarlo dopo il titolo dell’utente (se ne ha uno). Ho provato a modificare il codice del plugin (dopo averlo forkato) ma finora non ho avuto successo.
Non posso modificare, quindi ho appena installato e testato il plugin e funziona molto bene. Tranne su mobile, dove il numero totale di post viene visualizzato sul lato sinistro del nome.