Come cambiare un utente in un ruolo diverso in base al numero dei suoi post?


7

Ci sono delle tecniche là fuori che possono mettere automaticamente un utente in un ruolo specifico in un ruolo diverso dopo aver inserito il numero X di post (argomenti del forum di base o / e risposte)?

Vorrei implementare una funzionalità in cui quando gli utenti si registrano per la prima volta al mio sito vengono assegnati a un ruolo con privilegi limitati, ma dopo un certo numero di post sul forum (nuovo argomento o risposte a quelli esistenti) vengono inseriti in un altro ruolo che non richiede CAPTCHA e che possono pubblicare link ecc. FYI usando il modulo core Forume Advanced Forum .

Risposte:


9

Ho trovato un modulo User Stats che si integra con le Regole e fornisce token come [user: post-count] che possono essere usati per il confronto numerico. Spero che questo aiuti qualcun altro.


2

Il modulo Statistiche utente ha solo una versione di sviluppo per D7 (suppongo che questa domanda riguardi D7). Tuttavia, la tua domanda sembra un caso d'uso perfetto per il modulo Obiettivi (divulgazione: ne sono il manutentore). Di seguito è possibile una configurazione per il tuo caso specifico, utilizzando gli obiettivi .

Configura un obiettivo

Passa al percorso relativo admin/config/goals/managee utilizza il collegamento "Aggiungi un obiettivo" per definire solo 1 obiettivo , con una descrizione (ad esempio):

Scrivi X numero di post (argomenti del forum di base o / e risposte) .

Configurare le attività

Per raggiungere l' obiettivo "crea un numero X di post (argomenti del forum di base o / e risposte)", definisci le attività da completare.

  • Pubblica un certo numero di argomenti principali del forum.
  • Pubblica un certo numero di risposte.

Un modo più avanzato di utilizzare (configurare) gli obiettivi è configurare le attività in questo modo:

  • alcune attività potrebbero dover essere ripetute più volte.
  • alcune attività potrebbero richiedere un certo lasso di tempo tra due attività simili (ad esempio: se un'attività viene eseguita più volte al giorno, conta solo la prima).
  • ... (ce ne sono altri ...).

Tieni traccia dei progressi durante l'esecuzione delle attività

Per tenere traccia dei progressi compiuti da un singolo utente per completare alcune attività, è sufficiente scrivere le regole appropriate, utilizzando il modulo Regole , per registrare eventi rilevanti che si verificano nel tuo sito, che sono correlati al completamento delle varie attività.

Per gli obiettivi / compiti sopra descritti come esempio, avresti bisogno solo di 2 (estremamente basilari) regole, che verrebbero attivate in questo modo:

  • Dopo aver pubblicato un argomento del forum principale.
  • Dopo aver pubblicato una risposta.

Nota che queste 2 regole possono essere riutilizzate per misurare i progressi su più obiettivi (ad es. Se il tuo obiettivo ha un'attività come "dopo aver postato 1 risposta" e un secondo obiettivo ha un'attività come "dopo aver postato 10 risposte").

Inoltre, le sfide di cui sopra sono piuttosto semplici (di base) come esempi di sfide. Ma puoi farlo praticamente per qualsiasi entità per la quale puoi pensare a un modo per rintracciarli tramite il modulo Regole.

Utilizzare le regole per elaborare gli obiettivi completati

Dopo che tutte le attività specifiche di un obiettivo sono state completate da un utente, l'obiettivo viene automaticamente contrassegnato come completato. Ma c'è di più: puoi anche creare regole aggiuntive che verranno attivate (Regole Event) quando un obiettivo viene completato da un utente. Detto questo, la risposta alla tua domanda è estremamente semplice: esegui un'azione Regole per " ... cambiare l'utente in un ruolo diverso " ... che è esattamente di cosa tratta la tua domanda, no?

Più o meno lo stesso

Invece della descrizione (noiosa) dell'obiettivo sopra, avresti potuto usare una descrizione dell'obiettivo come (diciamo) " Utente partecipante ". Quale BTW potrebbe essere una bella descrizione del ruolo da assegnare anche.

Se poi definisci (diciamo) altri 3 (simili) obiettivi, con ognuno di essi un insieme appropriato di compiti da completare, potresti usare la stessa tecnica per obiettivi (e / o ruoli) etichettati in qualche modo (se suonano familiare a qualcosa su Drupal.SE, è puramente un incidente):

  • Utente leale.
  • Utente affermato.
  • Utente fidato.
  • Moderatore.

Ulteriori informazioni

Fai riferimento alla mia risposta a " Come implementare la gamification in un sito Drupal e assegnare incentivi? " Per ulteriori dettagli sul modulo Obiettivi .

Nota: l'utilizzo degli obiettivi richiede solo attività di amministrazione tipiche (configurazione), sebbene includa vari hook anche per lo sviluppo di moduli personalizzati (se lo si desidera).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.