Voglio creare un badge personalizzato a cui verranno aggiunte queste regole, il che significa semplicemente che quando un utente realizza le seguenti cose, gli verrà automaticamente assegnato il badge correlato.
Gli utenti devono realizzare le seguenti cose/regole:
L’utente deve aver creato almeno 2 post
L’utente deve aver caricato un’immagine del profilo
L’utente deve aver messo like ad almeno un post
Nota: ho visto la creazione di alcuni badge con l’aiuto di query SQL, in realtà sono molto nuovo a questo, quindi per favore ditemi dove inserire le query SQL (se necessarie) per raggiungere queste regole di cui sopra.
Ho installato il plugin ed eseguito il comando SQL sottostante che mi restituisce gli utenti che soddisfano queste 3 regole, ma non so come convertirlo in un trigger quando un utente agisce su un post.
Comando SQL - select users.username, user_stats.user_id from user_stats Inner Join users ON user_stats.user_id = users.id where post_count = 2 AND likes_given = 1 AND uploaded_avatar_id > 0
Per favore, aiutami a risolvere questo problema, se riesco a completarlo una volta, potrò creare altri miei badge personalizzati con meno attrito. @Lhc_fl
Questo è un codice SQL di “Trigger: Aggiornamento giornaliero”;
SELECT st.user_id user_id, current_timestamp granted_at
FROM user_stats st
JOIN users u
ON st.user_id = u.id
WHERE st.post_count >= 2 AND st.likes_given >= 1 AND u.uploaded_avatar_id > 0
Gli altri trigger dipendono da qualcosa di specifico e non ne consiglio l’uso a meno che tu non trovi un esperto di SQL. (Non ho familiarità con SQL io stesso)
Per quanto riguarda 1?, questi sono nomi di alias di tabella.
Vedi la riga FROM user_stats st? Sta dicendo alla query che st è l’abbreviazione della tabella user_stats.
Lo stesso vale per l’istruzione JOIN dove dice users u. Sta dicendo che nella query u è un alias per la tabella users in quella query. Gli alias vengono utilizzati per semplificare le query, utilizzare meno digitazione, il che riduce le possibilità di errori.
Per quanto riguarda 3, se abiliti quell’opzione, se un utente non si qualifica più per un badge in base alla query, il badge verrà rimosso dal suo account.
La query viene eseguita ogni 24 ore in base all’ora del giorno in cui hai avviato il container. Quindi ho un’istanza che la esegue intorno alle 0:00 UTC (circa) e un’altra istanza la esegue poco dopo le 6:00 UTC.
Possiamo modificare gli orari in cui questa query verrà eseguita o possiamo modificare questa query in Trigger: quando l'utente agisce su un post o quando l'utente modifica o crea un post?
Se possibile, si prega di modificare la query poiché sono nuovo in questo sistema di discourse, se puoi aiutarmi una volta, da ora in poi potrò creare il mio badge personalizzato.