La tua domanda è davvero composta da 2 parti, cioè su come implementare:
- un sistema di reputazione , che è come una valutazione di più utenti su un utente specifico.
- un sistema di raggiungimento degli obiettivi , che è come premiare un utente dopo aver completato vari compiti, sfide, ecc.
Continua a leggere per maggiori dettagli su come implementare ciascuno di entrambi i sistemi.
Sistema di raggiungimento degli obiettivi
In genere ci sono 2 moduli tra cui scegliere per questo tipo di sistema, ovvero:
Il modulo Achievements , come già suggerito in un'altra risposta. Questo modulo si basa fortemente sulla codifica personalizzata per gestire molte delle funzioni.
Il modulo Obiettivi (Informativa: ne sono il manutentore), che può essere utilizzato per incentivare qualsiasi cosa sul tuo sito, come votare, condividere contenuti, creare relazioni, ecc.
Gli obiettivi e le attività vengono implementati utilizzando entità fieldable. Alcuni esempi di attività da completare potrebbero essere:
- Accedi al sito una volta al giorno per tre giorni consecutivi.
- Pubblica un numero di nodi di tipi di contenuto selezionati.
- Crea una connessione Friend sul sito.
- Eccetera.
Puoi personalizzare gli obiettivi tramite "Gestisci campi" e / o "Gestisci display". Tutto può essere fatto solo con le funzionalità di creazione del sito (nessun codice personalizzato coinvolto), sebbene siano disponibili hook per integrarlo anche nella codifica personalizzata. Quindi il modulo Obiettivi è costruito attorno usando la configurazione dell'interfaccia di amministrazione. Inoltre, gli obiettivi e le attività all'interno del modulo Obiettivi sono entità fieldable, quindi hai la flessibilità di aggiungere campi aggiuntivi e incorporare queste entità in Views . Utilizzando il Goals Extras
sottomodulo si integra anche con il modulo Punti utente .
Vai al video degli obiettivi che include:
- un'introduzione generale al modulo.
- una dimostrazione per installarlo, configurarlo e usarlo.
- esempi di come utilizza i moduli Regole per fare la sua magia (cioè per tenere traccia dei progressi di un utente per raggiungere i vari obiettivi).
Sistema di reputazione
Usando il modulo Risposte (Disclosure: ne sono un (co) manutentore) puoi " mettere un sistema di buona reputazione " (come nella tua domanda). Ecco alcuni dettagli al riguardo (dalla sua pagina del progetto):
Answers consente l'implementazione di un sistema di domande e risposte in un sito Drupal. Gli utenti possono inviare domande e altri utenti possono rispondere.
Vai alla sua pagina del progetto per maggiori dettagli. Visita il suo sito demo per una dimostrazione (in modalità di sola lettura per utenti anonimi) di elenchi basati su Views di:
Il modulo Risposte "core" abilita i tipi di contenuto Domanda e risposta , mentre le risposte sono visualizzate sotto la domanda a cui si riferiscono. Questi 2 tipi di contenuto sono disponibili, puoi gestirne i display, ecc.
Utilizzare i suoi sottomoduli per abilitare la funzionalità selezionata (in base ai requisiti di un sito), ovvero:
- Risposte Risposta migliore , che consente di contrassegnare una delle risposte a una domanda specifica come la risposta migliore (accettata) (per visualizzare i segni di spunta blu a sinistra di ciascuna risposta e che viene sostituita da un segno di spunta verde quando viene contrassegnata una risposta come la migliore risposta).
- Il tema Risposte , che trasforma la (piuttosto noiosa) visualizzazione vaniglia di una domanda (e le relative risposte sottostanti), in un modo più accattivante. Come la bolla arancione che viene aggiunta attorno alla domanda (per evidenziarla meglio).
- Notifica risposte , per consentire agli utenti che hanno effettuato l'accesso di iscriversi alle domande selezionate, in modo che ricevano notifiche (utilizzando lo stack di messaggi ) quando le domande ricevono risposte.
- Risposte Votazione , per implementare un sistema per l'upgrade o il downvote di Domande e / o Risposte (che utilizza ilmodulo Rate ).
- Risposte ai punti utente , per aumentare o ridurre i " punti reputazione " (che utilizzano ilmodulo Punti utente ) su eventi come il voto positivo o negativo su una domanda o risposta o contrassegnare una risposta come " Migliore risposta ".
Gran parte della sua "logica di business" è implementata attraverso ogni sorta di regole configurabili (usando il modulo Regole ). Ad esempio, se non sei d'accordo con le regole predefinite su quanti "punti utente" sono concessi a una domanda (o risposta) votata (o ridotta), devi semplicemente usare l'interfaccia utente delle regole per ottimizzare quantità di tali punti in base alle vostre esigenze. Ad esempio: le domande di downvoting dovrebbero essere veramente libere (ovvero: il downvoter dovrebbe perdere punti nel farlo?).
Per completezza, di seguito è riportata una regola (nel formato di esportazione Regole), che viene utilizzata per assegnare punti "+15" all'autore di una risposta , insieme a punti "+2" per l'utente che contrassegna la risposta come accettata (= l'autore della domanda ), mentre la marcatura come tale viene eseguita contrassegnando la risposta come "Migliore risposta" (utilizzando il modulo Flag ):
{ "rules_flag_answers_best_answer" : {
"LABEL" : "flag_answers_best_answer",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "answers" ],
"REQUIRES" : [ "rules", "userpoints_rules", "flag" ],
"ON" : { "flag_flagged_best_answer" : [] },
"IF" : [
{ "NOT data_is" : { "data" : [ "flagging-user" ], "value" : [ "flagged-node:author" ] } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "flagged-node:author" ],
"points" : "15",
"tid" : "0",
"entity" : [ "" ],
"operation" : "addPoints",
"display" : 1,
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "flagging-user" ],
"points" : "2",
"tid" : "0",
"entity" : [ "" ],
"operation" : "addPoints",
"display" : 1,
"moderate" : "default"
}
}
]
}
}