Nel caso in cui qualcun altro sia interessato a farlo, ecco una breve descrizione di ciò che ho fatto:
- Per prima cosa, devi abilitare Badge SQL tramite la CLI del tuo server Discourse:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
- Successivamente, trova l’ID dell’argomento con cui i membri devono interagire per ottenere il badge. Nella mia istanza, l’ID dell’argomento è 117
- Crea il tuo Badge Personalizzato:
- Admin > Badges > New
- Dai al badge il nome che preferisci (es. B/S/T Rule Reader)
- Scegli un tipo di badge, un’icona e fornisci una descrizione
- Se hai seguito il Punto 1, vedrai una casella di query in cui puoi digitare una query SQL. Incolla questa query (cambia
p.topic_id = 117con l’ID del tuo argomento):-
SELECT DISTINCT ON (pa.user_id) pa.user_id, pa.post_id, pa.created_at granted_at FROM post_actions pa JOIN posts p ON pa.post_id = p.id AND p.post_number = 1 WHERE pa.post_action_type_id = 2 AND p.topic_id = 117 AND (:backfill OR pa.post_id IN (:post_ids))
-
- Assicurati che Run revocation query daily (Esegui query di revoca giornalmente) e Query targets posts (Query prende di mira i post) siano entrambi selezionati.
- Il trigger deve essere impostato su When a user acts on post (Quando un utente agisce su un post)
- Ora creiamo l’Automazione
- Per prima cosa crea un nuovo gruppo a cui verranno aggiunti i membri. Il mio si chiama semplicemente
bst_rules_agreeded è impostato in modo che solo i proprietari del gruppo e i moderatori possano vederne l’appartenenza. Non necessita di effetti di Livello di Fiducia. - Successivamente, vai su Plugins > Automation
- Aggiungi una nuova automazione
- Scegli User Group Membership Through Badge (Appartenenza al gruppo utente tramite badge)
- Trigger: Recurring (Ricorrente)
- Recurrence: Io l’ho impostato ogni 1 ora. Scegli ciò che ha senso per te.
- Scegli una data di inizio
- Script Options:
- Badge: Scegli il badge che hai creato sopra
- Group: Scegli il gruppo che hai creato sopra
- Aggiungi una nuova automazione
- Per prima cosa crea un nuovo gruppo a cui verranno aggiunti i membri. Il mio si chiama semplicemente
Questo è tutto. Ora dovresti avere un sistema che assicuri che i membri abbiano accettato le regole della categoria prima di poter pubblicare in quella categoria.
La mia prossima esplorazione è vedere se c’è un modo per nascondere tutti gli argomenti tranne le regole a chiunque non faccia parte di quel gruppo. Ma, questo sistema di base è sufficiente per ora.