Restringere la pubblicazione in una categoria finché non mettono "mi piace" a un argomento

Buon pomeriggio. Ho una categoria Compravendita/Scambio sul mio sito che vorrei limitare alla pubblicazione finché un membro non mette “Mi piace” all’argomento delle regole. Ho chiesto all’AI Bot, e mi ha fornito alcune istruzioni. Tuttavia, sembra che richieda l’Automazione di Discourse, disponibile solo sui piani ospitati.

C’è un modo per farlo sulla mia piattaforma self-hosted?

Ciao, è effettivamente incluso gratuitamente con l’edizione community. Puoi abilitarlo nella scheda Plugin.

2 Mi Piace

Non importa. Ho capito che posso aggiungere il plugin Discord Automation manualmente…

1 Mi Piace

Hmm, forse con Discourse Policy e i permessi di gruppo?

  • add-users-to-group: accetta un singolo gruppo come input; gli utenti che accettano la policy verranno aggiunti automaticamente a questo gruppo (quando la policy viene revocata manualmente o se la versione della policy viene aggiornata, l’utente/gli utenti viene/vengono rimosso/i dal gruppo)
2 Mi Piace

L’ho capito (con l’aiuto di ask.discourse.org).

Ho dovuto abilitare il badge SQL e quindi creare un badge che viene assegnato quando qualcuno mette “mi piace” al post specifico. Ho quindi creato un gruppo che l’Automazione Discord assegna automaticamente in base al fatto che un utente abbia il badge. Ho dato al gruppo “tutti” solo accesso in lettura alla categoria in modo che possano solo reagire. Ho dato al gruppo personalizzato accesso completo.

2 Mi Piace

Bello, grazie per aver condiviso i dettagli!
Ora puoi contrassegnare il tuo post come soluzione. :grin:

1 Mi Piace

Farò una breve descrizione di esattamente quello che ho fatto quando torno a casa, nel caso in cui qualcun altro voglia saperlo. Poi contrassegnerò questo come soluzione.

3 Mi Piace

Nel caso in cui qualcun altro sia interessato a farlo, ecco una breve descrizione di ciò che ho fatto:

  1. Per prima cosa, devi abilitare Badge SQL tramite la CLI del tuo server Discourse:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
  1. Successivamente, trova l’ID dell’argomento con cui i membri devono interagire per ottenere il badge. Nella mia istanza, l’ID dell’argomento è 117
  2. Crea il tuo Badge Personalizzato:
    1. Admin > Badges > New
    2. Dai al badge il nome che preferisci (es. B/S/T Rule Reader)
    3. Scegli un tipo di badge, un’icona e fornisci una descrizione
    4. 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 = 117 con l’ID del tuo argomento):
      1. 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))
        
    5. Assicurati che Run revocation query daily (Esegui query di revoca giornalmente) e Query targets posts (Query prende di mira i post) siano entrambi selezionati.
    6. Il trigger deve essere impostato su When a user acts on post (Quando un utente agisce su un post)
  3. Ora creiamo l’Automazione
    1. Per prima cosa crea un nuovo gruppo a cui verranno aggiunti i membri. Il mio si chiama semplicemente bst_rules_agreed ed è impostato in modo che solo i proprietari del gruppo e i moderatori possano vederne l’appartenenza. Non necessita di effetti di Livello di Fiducia.
    2. Successivamente, vai su Plugins > Automation
      1. Aggiungi una nuova automazione
        1. Scegli User Group Membership Through Badge (Appartenenza al gruppo utente tramite badge)
        2. Trigger: Recurring (Ricorrente)
          1. Recurrence: Io l’ho impostato ogni 1 ora. Scegli ciò che ha senso per te.
          2. Scegli una data di inizio
        3. Script Options:
          1. Badge: Scegli il badge che hai creato sopra
          2. Group: Scegli il gruppo che hai creato sopra

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.

3 Mi Piace

È stata suggerita una soluzione alternativa nell’argomento per il plugin dei topic privati. La sto spostando qui.

1 Mi Piace

Grazie per questo plugin! Stavo cercando un modo per fornire un sistema di ticketing di base nella nostra community.

Sto anche pensando di usarlo nella mia categoria Compra/Vendi/Scambia. Al momento ho impostato in modo che tutti possano leggere gli argomenti, ma solo le persone in un gruppo specifico possono rispondere e creare. Il flusso di lavoro attuale è: il membro riconosce di aver letto le regole mettendo “mi piace” al post. Una volta messo “mi piace” al post, viene loro concesso un badge personalizzato. Discourse Automate li aggiunge al gruppo in base al badge.

Questo impedisce alle persone che non hanno accettato le regole di pubblicare nella categoria. Tuttavia, possono ancora vedere/leggere tutte le pubblicazioni.

Quindi, funzionerebbe se rimuovessi tutti dalla categoria e lasciassi solo quel gruppo personalizzato nella scheda di sicurezza? Finché ho i post del gruppo Admin sempre visibili, le persone che non fanno parte del gruppo personalizzato saranno comunque in grado di vedere e mettere “mi piace” alle regole? Poi, una volta che mettono “mi piace” e vengono aggiunti al gruppo, tutto si apre per loro?

Non è questo che questo plugin doveva fare.

Il tuo caso d’uso può essere implementato senza questo plugin, utilizzando invece il plugin Discourse Policy, che ha la capacità di aggiungere gli utenti che hanno accettato la policy a un gruppo.

Ho esaminato il plugin Policy prima di addentrarmi nel modo in cui ho finito per assegnare l’appartenenza al gruppo. Il motivo per cui non mi piace Policy per questo è che deve essere applicato a un gruppo. Dovrei applicarlo a qualcosa come trust_level_1 per assicurarmi che tutti coloro che vogliono far parte di B/S/T lo vedano. Ma non tutti vogliono partecipare a B/S/T. Non voglio assillarli con un’altra cosa da cliccare (anche se è veloce) se non sono interessati.

  • crea un gruppo “candidati BST” e un gruppo “membri BST”
  • fai in modo che “candidati BST” sia un gruppo a cui ci si può unire liberamente
  • crea una policy che si applica a “candidati BST” e aggiunge a “membri BST”
  • concedi l’accesso alla categoria a “membri BST”

Le persone si uniranno a “candidati BST”, accetteranno la policy e diventeranno membri di “membri BST”. Macchinoso ma meno macchinoso che innescare un intero meccanismo alla Rube Goldberg mettendo “mi piace” a un post.

1 Mi Piace

2 messaggi sono stati uniti in un argomento esistente: Private Topics Plugin

Anche questo potrebbe funzionare. Lo indagherò. Grazie!! Sono davvero nuovo a Discourse, quindi sto imparando le regole.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.